2

就像标题所述,我需要让我的程序等到我NSOpenPanel关闭。我打开了面板,windowControllerWillLoadNib以便它在我的文档窗口打开之前发生。但发生的情况是,它只是加载两个窗口而不等待面板关闭。我怎样才能让它等到打开的面板关闭并完全完成?

4

2 回答 2

2

设置您的打开面板,然后您可以执行以下操作:

if ([openPanel runModal]==NSFileHandlingPanelOKButton) {
    // get the urls
    NSArray *fileURLs = [openPanel URLs];
} else {
    // cancel button was clicked
}

runModal 会停止程序的执行,直到面板关闭。

于 2011-12-03T16:54:03.533 回答
2

使用 runModal 方法。

代码示例:

int result;
NSOpenPanel *oPanel = [NSOpenPanel openPanel];
result = [oPanel runModalForDirectory:NSHomeDirectory() file:nil types:nil];
if (result == NSOKButton) {
//your code
}
于 2011-12-03T17:28:25.870 回答