Frage

Wie der Titel sagt, muss ich mein Programm warten lassen, bis ich meine NSOpenPanel schließt. Ich habe das Panel offen in windowControllerWillLoadNib so dass es passiert, bevor mein Dokumentfenster geöffnet wird. Aber was passiert, ist, dass es nur beide Fenster lädt, ohne darauf zu warten, dass das Panel schließt. Wie kann ich es warten lassen, bis die offene Platte geschlossen und komplett fertig ist?

War es hilfreich?

Lösung

Verwenden Sie die Runmodal -Methode.

Codebeispiel:

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

Andere Tipps

Richten Sie Ihr offenes Panel ein und dann können Sie so etwas tun:

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

Runmodal stoppt die Ausführung Ihres Programms, bis das Panel schließt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top