2
我想弄清楚如何在OSX上通過拖放文件或文件夾來啓動Swift應用程序,並讓它處理掉落的完整路徑資源作爲論據。通過拖放文件或文件夾啓動Swift OSX應用程序
我想弄清楚如何在OSX上通過拖放文件或文件夾來啓動Swift應用程序,並讓它處理掉落的完整路徑資源作爲論據。通過拖放文件或文件夾啓動Swift OSX應用程序
首先,在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 openned the file successfully.
return true
}
}
文件類型OS X由統一類型標識符(UTI)的層次結構確定。例如,JPEG文件的UTI爲public.jpeg
。它是public.image
的分支,它是public.data
的子分支,等等。有關更多信息,請參見Uniform Type Identifier Overview和System-Declared Uniform Type Identifiers。
要找出一個文件的UTI層次,使用mdls
:
mdls -name kMDItemContentTypeTree /path/to/myFile.ext