如何让我的程序等待NSOpenPanel关闭?

时间:2011-12-03 16:46:43

标签: objective-c cocoa nsopenpanel

与标题状态一样,我需要让我的程序等到NSOpenPanel关闭。我在windowControllerWillLoadNib中打开了面板,以便在我的文档窗口打开之前发生。但是会发生的是,它只是加载两个窗口而不等待面板关闭。如何让它等到打开的面板关闭并完全结束?

2 个答案:

答案 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
}