当我在Mac应用程序中使用沙盒时,我单击菜单项“导出”,它应该使用NSOpenPanel打开一个对话框,但它没有。这是我的代码:
[playExportPanel beginSheetModalForWindow:mainWindow
completionHandler: ^(NSInteger result) {
if(result == NSFileHandlingPanelOKButton) {
....
}
}]
抛出异常:-[NSRemoteOpenPanel close]: unrecognized selector sent to instance
。什么是NSRemoteOpenPanel
?有没有人见过这个?
答案 0 :(得分:2)
我刚刚在自己的应用中解决了这个问题。我删除了[sheet close];
。然后我用[sheet orderOut:self];
替换它。在您的情况下,后者可能不是必需的。在我的代码中,可以在块代码返回之前显示错误表。这会导致堆叠的纸张,我不喜欢这个星座:它看起来很混乱。
您可能会从已弃用的API迁移到“-beginSheetModalForWindow:completionHandler:”并重新使用旧代码。即使删除了对-close的调用,面板也会在块返回后关闭。这可能是新API行为的一部分,但我还没有找到文档中描述的内容。