我正在创建一个 macOS 应用程序,该应用程序在其 Bundle 目录中附带一些 .zip 文件。
用户应该能够将这些文件从我的应用程序保存到自定义目录。
我发现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)有没有办法显示默认展开的面板?