2010-10-15 19 views
9

¿Cómo salir correctamente de la aplicación Mac OS X, cuando se cierra el principal (el único)?Salir de la aplicación cuando NSWindow se cierra

Sé que hay un método - (void)windowWillClose:(NSNotification *)notification en NSWindowDelegate. Pero no es muy adecuado en mi caso, porque se llama antes de queNSWindow se cierre.

Respuesta

23

No se puede tener el evento windowDidClose ya que la notificación que lo acompaña mantendría un objeto no válido (es probable que la ventana haya sido desasignada al cerrar). Para conseguir lo que necesita, hacer de su clase, el delegado de la aplicación, y poner en práctica el método siguiente:

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

A partir de ese método, volver YES.

Si su objeto controlador tiene una instancia en el MainMenu.nib, solo haga una conexión desde el Propietario del archivo (lo que significa Application Object en el archivo MainMenu.nob). Control: arrastre desde el propietario del archivo hasta su objeto y conecte la toma de delegado.

O en el código fuente, poner algo como esto en el método init de su objeto controlador:

[NSApp setDelegate: self]; 
+0

Gracias! No noté este método en 'NSApplicationDelegate'. :) –

Cuestiones relacionadas