2

タイトルの状態のように、プログラムNSOpenPanelが終了するまで待機させる必要があります。windowControllerWillLoadNibドキュメントウィンドウが開く前にパネルが開くようにします。しかし、何が起こるかというと、パネルが閉じるのを待たずに両方のウィンドウをロードするだけです。開いているパネルが閉じて完全に終了するまで待機させるにはどうすればよいですか?

4

2 に答える 2

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 に答える
2

開いているパネルをセットアップすると、次のようなことができます。

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

runModal は、パネルが閉じるまでプログラムの実行を停止します。

于 2011-12-03T16:54:03.533 に答える