Estoy intentando aprender a codificar para la Mac. He sido un chico de Java por un tiempo, así que espero que el problema con el que me estoy encontrando sea un simple malentendido de Cocoa.addGlobalMonitorForEventsMatchingMask solo devolviendo la posición del mouse
Tengo el siguiente código:
-(IBAction)beginEventMonitor:(id)sender {
_eventMonitor = [NSEvent addGlobalMonitorForEventsMatchingMask:(NSLeftMouseUpMask)
handler:^(NSEvent *incomingEvent) {
//NSWindow *targetWindowForEvent = [incomingEvent window];
NSLog(@"Got a mouse click event at %@", NSStringFromPoint([incomingEvent locationInWindow]));
}];
}
-(IBAction)stopEventMonitor:(id)sender {
if (_eventMonitor) {
[NSEvent removeMonitor:_eventMonitor];
_eventMonitor = nil;
}
}
Se trata de un simple gancho para decirme cuando un clic del ratón pasa a nivel global. El controlador está funcionando, pero el contenido del Evento entrante no parece establecerse en nada. La única información útil que puedo encontrar es la ubicación del mouse en el momento del clic y la ventana de la ventana en la que se hizo clic.
¿No debería poder obtener más información? ¿No estoy configurando el monitor correctamente? Realmente me gustaría poder saber en qué ventana se hizo clic, pero ni siquiera puedo encontrar la manera de convertir la ubicación del mouse o ventana en algo útil.
funciona muy bien con los eventos de mouse, ¿sabes algo para los eventos de KeyDown? –