Я хочу инициировать мультисенсорные события жеста на Mac OS X. Существует ли способ сделать это? События от нажатия мыши или события клавиатуры могут быть инициированы с CGEventCreateMouseEvent и CGEventCreateKeyboardEvent. Есть ли подобная низкоуровневая функция для мультисенсорных событий?
Южнокореец
Ваше предложение не работает. Я попробовал этот код: - (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");
}
Но функция rotateWithEvent никогда не вызывается. Я делаю что-то не так?
Вероятно, вы могли бы использовать CGEventCreate
для создания события жеста. Типы событий, «официально» определенные для CGEventCreate
, не включают типы событий жестов, но вы можете передать значения, определенные в NSEvent.h
:
NSEventTypeGesture
NSEventTypeMagnify
NSEventTypeSwipe
NSEventTypeRotate
NSEventTypeBeginGesture
NSEventTypeEndGesture
Значения для не- типы жестов отображаются напрямую в значения kCGEvent
в CGEventTypes.h
, поэтому разумно ожидать, что типы событий жестов будут работать:
CGEventSourceRef eventSource = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState);
CGEventRef event = CGEventCreate(eventSource);
CGEventSetType(event, NSEventTypeMagnify);
//continue to set up the event