我正在創建一個macOS應用程序,該應用程序在其Bundle目錄中附帶一些.zip文件。使用NSSavePanel將文件從Bundle保存到桌面
用戶應該能夠將這些文件從我的應用程序保存到自定義目錄。
我發現NSSavePanel
,認爲這是正確的做法 - 這是我到目前爲止有:
@IBAction func buttonSaveFiles(_ sender: Any) {
let savePanel = NSSavePanel()
let bundleFile = Bundle.main.resourcePath!.appending("/MyCustom.zip")
let targetPath = NSHomeDirectory()
savePanel.directoryURL = URL(fileURLWithPath: targetPath.appending("/Desktop"))
// Is appeding 'Desktop' a good solution in terms of localisation?
savePanel.message = "My custom message."
savePanel.nameFieldStringValue = "MyFile"
savePanel.showsHiddenFiles = false
savePanel.showsTagField = false
savePanel.canCreateDirectories = true
savePanel.allowsOtherFileTypes = false
savePanel.isExtensionHidden = true
savePanel.beginSheetModal(for: self.view.window!, completionHandler: {_ in })
}
我無法找出如何「交出」的bundleFile
到savePanel
。
所以我的主要問題是:如何將應用程序包中的文件保存/複製到自定義目錄?
其他問題取決於NSSavePanel
:1)它似乎沒有默認本地化(我的Xcode方案設置爲德語,但面板以英文顯示),我必須自己定製嗎? 2)有沒有方法可以展示默認擴展的面板?
運行搜索包或NSBundle將有所幫助。 –
@ElTomato我已經使用'Bundle'來查找bundleFile的路徑(參見上面的代碼)。這對我描述的問題沒有幫助。 – ixany
哦,對不起...讓我想想,我會回來的。 –