Domanda

Come gli stati del titolo, ho bisogno di far aspettare il mio programma fino al mio NSOpenPanel chiude. Ho il pannello aperto windowControllerWillLoadNib in modo che accada prima che si apra la finestra del mio documento. Ma ciò che succede è che carica solo entrambe le finestre senza aspettare che il pannello si chiuda. Come posso farlo aspettare fino a quando il pannello aperto è chiuso e completamente finito?

È stato utile?

Soluzione

Usa il metodo RunModal.

Esempio di codice:

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

Altri suggerimenti

Imposta il tuo pannello aperto e poi puoi fare qualcosa del genere:

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

RunModal interrompe l'esecuzione del programma fino alla chiusura del pannello.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top