sud0
sud0

Reputation: 547

How do I make my program wait for NSOpenPanel to close?

Like the title states, I need to make my program wait until my NSOpenPanel closes. I have the panel open in windowControllerWillLoadNib so that it happens before my document window opens. But what happens is that, it just loads both windows without waiting for the panel to close. How can I make it wait until the open panel is closed and completely finished?

Upvotes: 2

Views: 1339

Answers (2)

virushuo
virushuo

Reputation: 660

use runModal method.

Code example:

int result;
NSOpenPanel *oPanel = [NSOpenPanel openPanel];
result = [oPanel runModalForDirectory:NSHomeDirectory() file:nil types:nil];
if (result == NSOKButton) {
//your code
}

Upvotes: 2

Alex Zielenski
Alex Zielenski

Reputation: 3601

Set up your open panel and then you can do something like this:

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

runModal stops the execution of your program until the panel closes.

Upvotes: 2

Related Questions