2010-03-21 2 views
7

Je souhaite déclencher des événements gestes multitouch sous Mac OS X. Existe-t-il un moyen de le faire? Les événements de souris ou de clavier peuvent être déclenchés avec CGEventCreateMouseEvent et CGEventCreateKeyboardEvent. Y a-t-il une fonction de bas niveau similaire pour les événements multitouch?Y a-t-il un moyen de déclencher des événements gestuels sous Mac OS X?

Rok


Votre suggestion ne fonctionne pas. J'ai essayé ce code:

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

Mais la fonction rotateWithEvent n'est jamais appelée. Est-ce que je fais quelque chose de mal?

+1

Quelqu'un at-il trouvé une solution pour cela? Je me bats avec un problème similaire quelques jours déjà, mais rien ne semble fonctionner :( – Nostradamus

+0

avez-vous trouvé classé qui doit être réglé? –

Répondre

2

Vous pouvez probablement utiliser CGEventCreate pour créer un événement gestuel. Les types d'événements « officiellement » définis pour CGEventCreate ne comprennent pas les types d'événements de geste, mais vous pouvez passer les valeurs définies dans NSEvent.h:

NSEventTypeGesture 
NSEventTypeMagnify 
NSEventTypeSwipe 
NSEventTypeRotate 
NSEventTypeBeginGesture 
NSEventTypeEndGesture 

Les valeurs de types non geste semblent carte directement aux kCGEvent<TYPE> valeurs dans CGEventTypes.h il est donc raisonnable d'attendre les types d'événements geste travail:

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

pourriez-vous donner plus de détails sur quelles données à "mettre en place"? –

+0

comment mettre en place cet événement –

0

Je me demande si vous essayez de poster un NSEventTypeBeginGesture avant de poster l'événement rotate?