2010-10-15 13 views
9

Come chiudere correttamente l'app Mac OS X, quando viene chiuso l'unico (l'unico)?Chiudere l'app quando NSWindow si chiude

Conosco un metodo - (void)windowWillClose:(NSNotification *)notification in NSWindowDelegate. Ma non è del tutto adatto nel mio caso, perché si chiama prima cheNSWindow si chiuda.

risposta

23

Non è possibile avere l'evento windowDidClose poiché la notifica che lo accompagna manterrà un oggetto non valido (la finestra è probabile che sia stata deallocata alla chiusura). Per ottenere quello che ti serve, a rendere la vostra classe il delegato della Domanda, e implementare il seguente metodo:

- (BOOL) applicationShouldTerminateAfterLastWindowClosed: (NSApplication *) theApplication; 

Da quel metodo, tornare YES.

Se l'oggetto controller ha un'istanza nello MainMenu.nib, effettuare semplicemente una connessione da Proprietario file (che significa Oggetto applicazione nel file MainMenu.nob). Controllo: trascina dal proprietario del file al tuo oggetto e collega l'uscita delegati.

o di codice sorgente, mettere qualcosa di simile nel metodo init del tuo oggetto controller:

[NSApp setDelegate: self]; 
+0

Grazie! Non ho notato questo metodo in 'NSApplicationDelegate'. :) –

Problemi correlati