2012-08-24 15 views
6

Cuando enciendo mi aplicación OS X desde Xcode, aparece como debería.La ventana no se restaurará después de que se cierre

Cuando cierro la ventana, desaparece (como era de esperar), y la aplicación todavía aparece activa en el dock.

Genial, así es como debería ser. Pero cuando hago clic en el dock para activar la ventana, no aparece.

¿Alguna idea?

+0

¿Cómo está usted de cerrarlo? salir de la aplicación vs ocultar o minimizar? – ekims

Respuesta

21

No hay mucha información en la pregunta, pero déjame suponer que la aplicación es de ventana única (es decir, no está basada en NSDocument).

Una situación típica en este escenario es que el usuario cierra la ventana y la aplicación sigue ejecutándose con el icono en el Dock como se supone que debe.

En esta situación, al usuario normalmente le gustaría que la ventana vuelva a aparecer cuando se activa la aplicación haciendo clic en el icono en el Dock.

Para obtener eso, se puede aplicar applicationShouldHandleReopen:hasVisibleWindows: de la siguiente manera:

- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)visibleWindows 
{ 
    if (visibleWindows) { 
     [self.window orderFront:self]; 
    } 
    else { 
     [self.window makeKeyAndOrderFront:self]; 
    } 

    return YES; 
} 
+0

disculpe por la falta de información en la pregunta ... le haré una prueba y le haré saber ... aplausos – theiOSDude

+1

solo el boleto gracias @Monolo - recordando que la opción 'Liberar cuando está cerrado' está desmarcada en IB de lo contrario, provocará un bloqueo 'makeKeyAndOrderFront' – theiOSDude

3

para SWIFT:

func applicationShouldHandleReopen(sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool { 
    if let window = sender.windows.first { 
     if flag { 
      window.orderFront(nil) 
     } else { 
      window.makeKeyAndOrderFront(nil) 
     } 
    } 

    return true 
} 
Cuestiones relacionadas