2011-06-09 12 views
5

Así que estoy trabajando en una aplicación de sobremesa de escritorio que usa un área de rastreo para determinar que el mouse entre y salga de esa área, luego hace algo. Básicamente estoy construyendo un rectángulo que sabría si el mouse se movía sobre él, y cambiaría (un rollover extremadamente básico).NSWindow registrar eventos del mouse (utilizando NSTrackingArea) incluso si la aplicación no está enfocada?

La única parte complicada es que quiero que esto se pueda registrar siempre que sea visible , incluso si no es firstresponder o clave. El problema es que para que se registren los eventos mouseEntered y mouseExited, primero tengo que hacer clic en la ventana para que se convierta en clave, y luego los registra bien.

Mi pregunta es, ¿cuál sería la mejor forma de implementar esto? Todavía no he podido encontrar una solución perfecta, aunque estoy cerca.

El siguiente enlace le permite registrar eventos CLICK incluso si no está enfocado, pero no pude encontrar algo que le permitiera realmente registrar mouseEntered y mouseExited.

Make OSX application respond to first mouse click when not focused

Respuesta

5

Crear una NSTrackingArea con la opción NSTrackingActiveAlways.

+0

Eso funcionó perfectamente. No puedo creer que me haya perdido eso. Estaba mirando la documentación de la clase NSWindow y NSView pensando que me faltaba algo allí. Gracias por la ayuda. –

Cuestiones relacionadas