我在了解新的Lion's Sandbox时遇到了一些问题。
我知道Lion包含一个受信任的守护进程Powerbox,其工作是代表沙盒应用程序呈现和控制打开/保存对话框。
就像Code Signing And Application Sandboxing Guide所说:

好的。我使用以下代码进行了一些实际的测试:

NSSavePanel *savePanel = [NSSavePanel savePanel];
savePanel.delegate = self;

savePanel.directoryURL = ...;
savePanel.nameFieldStringValue = ...;

[savePanel beginSheetModalForWindow:self.window
                  completionHandler:^(NSInteger returnCode) {
/* the completion handler */
}];
奇怪的是,在完成处理程序之前称为NSOpenSavePanelDelegate的方法无权访问文件系统上的文件。
这样对吗?
但是,如果是这样,委托(delegate)人的方法(例如panel:validateURL:error:)将变得毫无用处!
您能帮我详细解释一下应用程序和Powerbox之间的联系吗?

最佳答案

与苹果公司联系后,我可以确认Rob Keniger写道:NSOpenSavePanelDelegate方法无法访问沙盒应用程序中的文件系统。

关于cocoa - NSSavePanel和沙盒,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6844383/

10-10 14:56