2010-06-24 10 views
7

Estoy haciendo una aplicación que el usuario tendrá que interactuar con una ventana y cuando tengan esa ventana configurada de la manera que lo deseen cambiarán a una aplicación diferente, entonces mi aplicación comenzar a hacer otras cosas que habrá definido en un métodoDetectando si la ventana es una ventana clave en cocoa

digo para un programa de ejemplo cuando la ventana principal tiene foco contiene una etiqueta que dice "estoy enfocado" y cuando la persona hace clic en el escritorio u otra ventana/aplicación, la etiqueta mostrará "no estoy enfocado".

Gracias

Respuesta

9

Eso no es lo mismo que la ventana de clave. La ventana clave significa que recibirá eventos de entrada para su aplicación. Lo que desea saber es si su aplicación está en primer plano. Lo que está buscando es NSApplication notificaciones NSApplicationDidBecomeActiveNotification y NSApplicationDidResignActiveNotification. Obsérvelos para descubrir cuándo su aplicación está o no en primer plano. Se llamarán automáticamente a los delegados de su aplicación applicationDidBecomeActive: y applicationDidResignActive:.

+0

+1 para una mejor respuesta que la mía. – robinjam

+0

¡Gracias fue exactamente para lo que estaba trabajando! ahora si solo pudiera obtener el código dentro del método para que funcione correctamente – Zanok

+2

Zanok: Vale la pena aclarar que las ventanas están separadas de las aplicaciones en Mac OS X. Una aplicación puede tener y tiene múltiples ventanas. Debe decidir si le importa la ventana activa (a diferencia de las otras ventanas de la aplicación, incluidos el panel Acerca de, panel de tipografía, panel Color y, quizás, panel Preferencias) o la aplicación activa (a diferencia de otra aplicación). –

11

[NSWindow isKeyWindow] podría ser lo que estás buscando.

Indica si la ventana es la ventana clave para la aplicación.

- (BOOL) isKeyWindow

Valor de retorno SÍ si la ventana es la ventana clave para la aplicación; De otra manera no.

Si desea detectar cuando la ventana se convierte en clave, o cuando deja de ser clave, disfrutar de los NSWindowDidBecomeKeyNotification y NSWindowDidResignKeyNotification notificaciones.

Cuestiones relacionadas