2011-03-31 17 views
10

Cuando cierro mi aplicación Mac (haciendo clic en el botón rojo en la barra superior de la ventana) el icono de la aplicación permanece en el dock en la parte inferior. Ahora este es un comportamiento normal. Cuando el usuario vuelve a hacer clic en él, no se inicia la aplicación a menos que el usuario cierre la aplicación por completo y la vuelva a lanzar.Cerrar la aplicación Mac (haciendo clic en la cruz roja arriba) y volver a abrir haciendo clic en el icono

Un ejemplo similar en Mac OS X es "Monitor de actividad". Puede cerrar la aplicación haciendo clic en el botón de la cruz roja en la parte superior, pero el icono de la base permanece allí. El usuario puede volver a abrir haciendo clic en el icono de dock.

¿Cómo puedo lograr esto en mi propia aplicación?

Respuesta

20

Si usted todavía está preocupado de cómo volver a abrir la ventana que ha cerrado, utilice este método:

- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag { 

[window makeKeyAndOrderFront:self]; 

return YES; 
} 

Puede utilizar esta para manejar los clics en el ícono de aplicaciones en el dock.

Para obtener más información, consulte NSApplicationDelegate Protocol Reference.

Aquí está la documentación:

http://developer.apple.com/library/mac/#documentation/cocoa/reference/NSApplicationDelegate_Protocol/Reference/Reference.html

Espero que esto ayude!

3

Implementar el método

- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender 
{ 
return NO; 
} 

en delegado de la aplicación

Su aplicación va a colgar alrededor después de que la ventana se cierra y luego si se implementa

- (void)applicationDidBecomeActive:(NSNotification *)aNotification 
{ 
//dock icon has just been clicked , or cmd-tabbed into 
} 

en el delegado de la aplicación

Puede hacer cosas cuando se hace clic en el icono, como abrir una victoria nueva o antigua Dow si necesita

Ver http://developer.apple.com/library/mac/#documentation/cocoa/reference/NSApplicationDelegate_Protocol/Reference/Reference.html para otros eventos relevantes de la aplicación

+0

Él está diciendo que en applicationDidBecomeActive se puede ver si la aplicación es sin ventanas, y si lo es, abrir una nueva ventana en blanco (o similar). –

Cuestiones relacionadas