【问题标题】:Launch a Swift OSX app by dragging and dropping a file or folder on it通过在其上拖放文件或文件夹来启动 Swift OSX 应用程序
【发布时间】:2022-01-05 18:30:32
【问题描述】:

我试图弄清楚如何通过拖放文件或文件夹在 OSX 上启动 Swift 应用程序,并让它将删除资源的完整路径视为参数。

【问题讨论】:

    标签: swift macos drag-and-drop


    【解决方案1】:

    首先,在 Project Navigator(根节点)中选择您的项目,然后转到 Info 选项卡以声明您的应用支持的文件类型。它可以像“仅 CSV 文件”一样窄,也可以像“任何文件和文件夹”一样宽:

    接下来,在您的 AppDelegate.swift 文件中,添加 application(_:openFile:)

    @NSApplicationMain
    class AppDelegate: NSObject, NSApplicationDelegate {
    
        func application(_ sender: NSApplication, openFile filename: String) -> Bool {
            print("openning file \(filename)")
    
            // You must determine if filename points to a file or folder
    
            // Now do your things...
    
            // Return true if your app opened the file successfully, false otherwise
            return true
        }
    }
    

    OS X 中的文件类型由统一类型标识符 (UTI) 的层次结构决定。例如,JPEG文件的UTI为public.jpeg,它是public.image的子分支,public.data的子分支等。更多信息请参见Uniform Type Identifier OverviewSystem-Declared Uniform Type Identifiers

    要找出文件或文件夹的 UTI 层次结构,请使用 mdls

    mdls -name kMDItemContentTypeTree /path/to/file_or_folder
    

    【讨论】:

    • 嗨,我正在尝试实现类似的目标。但这对我不起作用。 stackoverflow.com/questions/58458717/…我如何做到这样当我双击一个文件夹(myfolder.extension)时它会打开我的应用程序?
    猜你喜欢
    • 2017-06-07
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多