问题描述
我的 Mac 程序通常附带一些包含法律细节的内部富文本文件。我使用 NSWorkspace openFile 调用在 TextEdit 中打开文件。
代码如下所示:
guard let aPath = Bundle.main.path(forResource: “Legal.rtf”,ofType: nil) else { return }
NSWorkspace.shared.openFile(aPath,withApplication: nil)
这一直有效,直到最近当此代码返回“无法打开应用程序。 -50”。那是沙盒问题吗?应该允许访问包中的文件。我们这样做是为了图像等。
我哪里设置错了?
谢谢!
解决方法
感谢您的评论。
我应该首先提到我包含文件名和文件类型(扩展名)的参数字符串。所以我必须将它们分开,这对 NSString 来说很容易,但不能立即用于 Swift String。稍微转换一下就可以得到这两个字符串。
然而,OpenFile 已被更新的 open(_:) 替换
let name = "Legal.rtf"
guard let aURL = Bundle.main.url(forResource: name,withExtension: "") else { return }
NSWorkspace.shared.open(aURL)
这个调用不介意你传递两个部分的字符串。