hei*_*imi 5 macos nssavepanel nsopenpanel swift3 macos-sierra
在Swift 3/Xcode8.1/10.12.2中我试图使用NSOpenPanel来获取带有以下代码的文本文件,由DenBeke编写
@IBAction func browseFile(sender: AnyObject) {
let dialog = NSOpenPanel();
dialog.title = "Choose a .txt file";
dialog.allowedFileTypes = ["txt"];
if (dialog.runModal() == NSModalResponseOK)
{
let result = dialog.url // Pathname of the file
if (result != nil) {
let path = result!.path
print("browseFile path: \(path)")
//filename_field.stringValue = path
}
} else {
// User clicked on "Cancel"
return
}
}
Run Code Online (Sandbox Code Playgroud)
代码按预期打开一个打开的对话框,我可以选择一个文件.单击打开按钮会使应用程序崩溃.在控制台中,我得到:
FI_TFloatingInputWindowController对象0x60800009c0c0在已经解除分配时过度释放; 打破objc_overrelease_during_dealloc_error进行调试
当我运行代码并打开对话框时,我得到了控制台
[默认] [错误]无法获取URL容器:file:/// Users/ruediheimlicher/Documents/LoggerdataDir/Messungen /,错误:错误域= BRCloudDocsErrorDomain代码= 12"未找到应用程序库:'com.apple.Documents' "UserInfo = {NSDescription =未找到应用程序库:'com.apple.Documents'}
但这不会影响应用程序.
在网络上有更多NSOpen或NSSave对话框的示例,代码略有不同,但每个人都得到相同的结果:崩溃,以及控制台上完全相同的错误.
在我的代码尝试中是否存在错误,甚至是与Swift3/sierra一起使用的示例?
让您的应用访问用户选择的文件<Your Project> -> <Your Target> -> Capabilities -> App Sandbox -> File Access -> User Selected File.
| 归档时间: |
|
| 查看次数: |
2649 次 |
| 最近记录: |