2011-04-15 2 views
5

¿Hay una manera de conseguirmanera de conseguir beginGestureWithEvent/endGestureWithEvent si la ventana no es más frontal

- (void)beginGestureWithEvent:(NSEvent *)event 

y

- (void)endGestureWithEvent:(NSEvent *)event 

llamadas a una vista, incluso si la ventana que contiene está en el fondo? Parece que estas llamadas solo se envían a Windows si son clave.

+0

Entonces puedo consultar sendEvent en el nivel de aplicación, buscando NSEventTypeBegin/EndGesture. Eso resuelve mi problema para ventanas sin clave, pero solo si la aplicación está en primer plano. Aún espero resolverlo para el caso de la aplicación no activa. – atebits

Respuesta

2

En general, no. En Leopard y SnowLeopard, los gestos están destinados a apuntar solo a la ventana de primer plano. Como descubriste, el servidor de ventanas ni siquiera enviará eventos de gestos a aplicaciones en segundo plano.

Puede instalar un evento, pero esos eventos no se ven exactamente como sus equivalentes NS. Toda la información está allí, sin embargo, si realmente quieres profundizar en ella.

Por favor presente un radar solicitando esto junto con la razón por la cual esto sería útil.

+0

gracias - me ayuda a dejar de golpear mi cabeza contra la pared – atebits

0

Pero aquí es una solución:

Añadir un área de seguimiento a la vista los límites con opciones NSTrackingMouseEnteredAndExited | NSTrackingActiveAlways

... y activar su aplicación sobre mouseEntered:

Es no estándar pero funcionará.

Cuestiones relacionadas