1

当我在 Mac 应用程序中使用沙盒时,我单击一个菜单项“导出”,它应该使用 NSOpenPanel 打开一个对话框,但它没有。这是我的代码:

[playExportPanel beginSheetModalForWindow:mainWindow
                        completionHandler: ^(NSInteger result) {
     if(result == NSFileHandlingPanelOKButton) {
             ....
     }
}]

它抛出一个异常:-[NSRemoteOpenPanel close]: unrecognized selector sent to instance. 是什么NSRemoteOpenPanel?有没有人见过这个?

4

1 回答 1

2

我刚刚在我自己的应用程序中解决了这个问题。我删除了[sheet close];. 然后我把它换成了[sheet orderOut:self];后来的。在您的情况下,后者可能不是必需的。在我的代码中,可能会在返回之前从块代码中显示错误表。这会导致堆叠的床单,我不喜欢在这个星座中拥有:它看起来很杂乱。

您可能从已弃用的 API 迁移到“-beginSheetModalForWindow:completionHandler:”并重用旧代码。即使删除了对 -close 的调用,面板也会在块返回后关闭。这可能是新 API 行为的一部分,但我还没有找到文档中描述的内容。

于 2012-05-19T08:09:51.230 回答