2010-03-21 10 views
7

Voglio attivare eventi gesture multitouch su Mac OS X. C'è un modo per farlo? Eventi di mouse o tastiera possono essere attivati ​​con CGEventCreateMouseEvent e CGEventCreateKeyboardEvent. Esiste una funzione di basso livello simile per gli eventi multitouch?C'è un modo per attivare eventi gestuali su Mac OS X?

Rok


tuo suggerimento non funziona. Ho provato questo codice:

- (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"); 
}

Ma la funzione rotateWithEvent non viene mai chiamata. Sto facendo qualcosa di sbagliato?

+1

Qualcuno ha trovato una soluzione per questo ??? Sto lottando con un problema simile già da un paio di giorni, ma niente sembra funzionare :( – Nostradamus

+0

hai trovato archiviato che è necessario impostare? –

risposta

2

Probabilmente si potrebbe usare CGEventCreate per creare un evento gesto. I tipi di evento "ufficialmente" definiti per CGEventCreate non includono tipi di eventi gesto, ma si potrebbe passare i valori definiti nella NSEvent.h:

NSEventTypeGesture 
NSEventTypeMagnify 
NSEventTypeSwipe 
NSEventTypeRotate 
NSEventTypeBeginGesture 
NSEventTypeEndGesture 

I valori per i tipi non-gesto sembrano mappare direttamente ai valori kCGEvent<TYPE> in CGEventTypes.h quindi è ragionevole aspettarsi i tipi di evento gesto funzioneranno:

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

potresti fornire maggiori dettagli su quali dati "configurare"? –

+0

come imposta questo evento –

0

mi chiedo se si tenta di inviare un NSEventTypeBeginGesture prima di pubblicare l'evento rotazione?