Mac OS X:在Finder中打开文件+应用沙盒

8

我尝试打开一个查找器窗口,这个操作本来是正常的,但每次执行时都会有1秒钟的延迟和一个错误日志。

[[NSWorkspace sharedWorkspace] selectFile:@"Users/[TheUser]/Downloads" inFileViewerRootedAtPath:pathStr];

日志显示:

__CFPasteboardIssueSandboxExtensionForPath: error for [/Users/TheUser/Downloads/]

这是正常现象吗?我已经启用了授权并允许访问下载文件夹。

我有同样的问题。你能解决它吗? - Daniel
我也一直看到这个问题,想知道答案。 - Dov
1个回答

8
有点晚了,但我也刚刚发现这个问题,并找到了答案。要消除此警告/错误/任何东西,您需要获得指向该路径的安全范围 URL(这可能对您来说有些棘手,因为要获取这样的 URL,您必须使用 NSOpenPanel 并打扰用户,即使您拥有该文件夹的正确授权!)。
一旦您拥有了该安全范围 URL,您就必须调用 startAccessingSecurityScopedResource 方法,然后再调用 NSWorkSpace。不要忘记在之后调用 stopAccessingSecurityScopedResource 方法(您可以在 selectFile:inFileViewerRootedAtPath: 返回后立即执行此操作),以释放内核资源并避免无法进行更多对 startAccessingSecurityScopedResource 方法的调用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接