2010-03-21 6 views
7

Ich möchte Multi-Touch-Gestenereignisse unter Mac OS X auslösen. Gibt es eine Möglichkeit, dies zu tun? Maus- oder Tastaturereignisse können mit CGEventCreateMouseEvent und CGEventCreateKeyboardEvent ausgelöst werden. Gibt es eine ähnliche Low-Level-Funktion für Multitouch-Events?Gibt es eine Möglichkeit, Gestenereignisse unter Mac OS X auszulösen?

Rok


Ihr Vorschlag nicht funktioniert. Ich habe diesen Code versucht:

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

Aber Funktion rotateWithEvent wird nie aufgerufen. Mache ich etwas falsch?

+1

Hat jemand eine Lösung dafür gefunden ??? Ich habe schon ein paar Tage mit einem ähnlichen Problem zu kämpfen, aber nichts scheint zu funktionieren :( – Nostradamus

+0

Haben Sie gefunden, dass Filed gesetzt werden muss? –

Antwort

2

Sie könnten wahrscheinlich CGEventCreate verwenden, um ein Gestenereignis zu erstellen. Die Ereignistypen „offiziell“ definiert für CGEventCreate keine Geste Ereignistypen umfassen, aber Sie in den Werten in NSEvent.h definiert passieren könnte:

NSEventTypeGesture 
NSEventTypeMagnify 
NSEventTypeSwipe 
NSEventTypeRotate 
NSEventTypeBeginGesture 
NSEventTypeEndGesture 

Die Werte für nicht-Geste Typen scheinen direkt auf die kCGEvent<TYPE> Werte abzubilden in CGEventTypes.h so ist es sinnvoll, die Geste Ereignistypen arbeiten zu erwarten:

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

Könnten Sie mehr Details darüber geben, welche Daten zu "einrichten"? –

+0

wie zu Richte dieses Ereignis ein –

0

ich frage mich, wenn Sie vor der Veröffentlichung das drehen-Ereignisses einen NSEventTypeBeginGesture veröffentlichen versuchen?