2010-03-21 9 views
7

Quiero desencadenar eventos de gestos multitáctiles en Mac OS X. ¿Hay alguna forma de hacerlo? Los eventos de mouse o teclado se pueden activar con CGEventCreateMouseEvent y CGEventCreateKeyboardEvent. ¿Hay una función similar de bajo nivel para eventos multitáctiles?¿Hay alguna manera de activar eventos de gestos en Mac OS X?

Rok


Su sugerencia no está funcionando. He intentado este código:

- (void)rotateWithEvent:(NSEvent *)event { 
    NSLog(@"ROTATE"); 
} 
-(IBAction)button:(id)sender { 
    CGEventSourceRef eventSource = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState); 
    CGEventRef event = CGEventCreate(eventSource); 
    CGEventSetType(event, NSEventTypeRotate); 
    CGEventPost(kCGHIDEventTap, event); 
    NSLog(@"POST EVENT"); 
}

Pero la función rotateWithEvent nunca se llama. ¿Estoy haciendo algo mal?

+1

¿Alguien ha encontrado una solución para esto ??? Estoy luchando con un problema similar hace un par de días, pero nada parece funcionar :( – Nostradamus

+0

encontraste archivado que es necesario configurar? –

Respuesta

2

Probablemente podría usar CGEventCreate para crear un evento de gesto. Los tipos de eventos "oficialmente" definidos para CGEventCreate no incluyen los tipos de eventos de gestos, pero podrían pasar en los valores definidos en NSEvent.h:

NSEventTypeGesture 
NSEventTypeMagnify 
NSEventTypeSwipe 
NSEventTypeRotate 
NSEventTypeBeginGesture 
NSEventTypeEndGesture 

los valores para los tipos de gestos no parece que se asignan directamente a los valores kCGEvent<TYPE> en CGEventTypes.h por lo que es razonable esperar que los tipos de eventos gesto trabajarán:

CGEventSourceRef eventSource = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState); 
CGEventRef event = CGEventCreate(eventSource); 
CGEventSetType(event, NSEventTypeMagnify); 
//continue to set up the event 
+1

podrías dar más detalles sobre qué datos "configurar" –

+0

cómo configurar este evento –

0

me pregunto si intenta publicar un NSEventTypeBeginGesture antes de publicar el evento de rotación?

Cuestiones relacionadas