Существует ли способ инициировать события жеста на Mac OS X?

Я хочу инициировать мультисенсорные события жеста на 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 никогда не вызывается. Я делаю что-то не так?

7
задан Bill the Lizard 13 September 2013 в 11:12
поделиться

1 ответ

Вероятно, вы могли бы использовать 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
2
ответ дан 7 December 2019 в 18:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: