2009-12-23 21 views
5

Estoy creando un selector de imágenes que mostrará una cuadrícula n por n del botón seleccionable cuando se abra el selector. Esta grilla de botones estará contenida dentro de una NSWindow, pero me gustaría que la ventana se cierre automáticamente si el usuario hace clic fuera de la pantalla. ¿Hay un indicador que se puede configurar para que cuando la ventana pierda el foco se cierre automáticamente?Cerrar mediante programación una ventana NSW cuando pierde el foco

Respuesta

8

Hay dos notificaciones que pueden interesarle: NSWindowDidResignKeyNotification y NSWindowDidResignMainNotification. Simplemente puede registrarse para el que le interesa en awakeFromNib (o windowDidLoad si tiene un controlador personalizado) y luego cierre u oculte la ventana según corresponda cuando reciba las notificaciones.

No voy a ahondar demasiado en si esta es una buena idea desde el punto de vista de la interfaz de usuario. Sin embargo, podría ser una mejor idea tener una vista de superposición o un panel para la funcionalidad que describes.

3

Puede consultar NSPanel. Es una subclase NSWindow que se ocultará cuando la aplicación está en segundo plano, y ese comportamiento suena muy similar a lo que está buscando.

+0

La cuestión es cerrar la ventana cuando ** la ventana ** pierde el foco, sin embargo. 'NSPanel' se esconde cuando la ** aplicación ** pierde el foco. – Jay

Cuestiones relacionadas