加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

macos – NSOpenPanel / NSSavePanel在Swift 3中崩溃

发布时间:2020-12-14 02:25:40 所属栏目:百科 来源:网络整理
导读:在 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 = ["tx
在 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
  }
}

代码按预期打开一个打开的对话框,我可以选择一个文件.单击打开按钮会使应用程序崩溃.在控制台中,我得到:

FI_TFloatingInputWindowController object 0x60800009c0c0 overreleased while already deallocating; break on objc_overrelease_during_dealloc_error to debug

当我运行代码并打开对话框时,我得到了控制台

[default] [ERROR] Failed getting container for URL: file:///Users/ruediheimlicher/Documents/LoggerdataDir/Messungen/,error: Error Domain=BRCloudDocsErrorDomain Code=12 “App library not found: ‘com.apple.Documents'” UserInfo={NSDescription=App library not found: ‘com.apple.Documents’}

但这不会影响应用程序.

在网络上有更多NSOpen或NSSave对话框的示例,代码略有不同,但每个人都得到相同的结果:崩溃,以及控制台上完全相同的错误.

在我的代码尝试中是否存在错误,甚至是与Swift3 / sierra一起使用的示例?

让您的应用访问< Your Project>下的用户所选文件 – > <你的目标> – >能力 – > App Sandbox – >文件访问 – >用户选择的文件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读