与标题状态一样,我需要让我的程序等到NSOpenPanel
关闭。我在windowControllerWillLoadNib
中打开了面板,以便在我的文档窗口打开之前发生。但是会发生的是,它只是加载两个窗口而不等待面板关闭。如何让它等到打开的面板关闭并完全结束?
答案 0 :(得分:2)
设置您的打开面板,然后您可以执行以下操作:
if ([openPanel runModal]==NSFileHandlingPanelOKButton) {
// get the urls
NSArray *fileURLs = [openPanel URLs];
} else {
// cancel button was clicked
}
runModal会停止程序的执行,直到面板关闭。
答案 1 :(得分:2)
使用runModal方法。
代码示例:
int result;
NSOpenPanel *oPanel = [NSOpenPanel openPanel];
result = [oPanel runModalForDirectory:NSHomeDirectory() file:nil types:nil];
if (result == NSOKButton) {
//your code
}