2010-03-21 3 views
7

Я хочу вызвать события жестов мультитач на Mac OS X. Есть ли способ сделать это? События мыши или клавиатуры могут запускаться с помощью CGEventCreateMouseEvent и CGEventCreateKeyboardEvent. Есть ли аналогичная функция низкого уровня для событий мультитач?Есть ли способ инициировать события жестов в Mac OS X?

Rok


Ваше предложение не работает. Я пробовал этот код:

- (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 никогда не вызывается. Я делаю что-то неправильно?

+1

Кто-нибудь нашел решение для этого ??? Я борюсь с подобной проблемой уже пару дней, но ничего не работает :( – Nostradamus

+0

Вы нашли файл, который необходимо установить? –

ответ

2

Возможно, вы можете использовать CGEventCreate, чтобы создать событие жестов. Типы событий «официально», определенные для CGEventCreate не включают в себя типы жест событий, но вы могли бы пройти в значениях, определенных в NSEvent.h:

NSEventTypeGesture 
NSEventTypeMagnify 
NSEventTypeSwipe 
NSEventTypeRotate 
NSEventTypeBeginGesture 
NSEventTypeEndGesture 

значения для типов без жестов, кажется, карту непосредственно к kCGEvent<TYPE> значений в CGEventTypes.h, поэтому разумно ожидать, что типы жестов события будут работать:

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

Не могли бы вы дать более подробную информацию о том, какие данные нужно «настроить»? –

+0

настроить это событие –

0

Интересно, если вы пытаетесь размещения NSEventTypeBeginGesture, прежде чем отправлять поворота события?

Смежные вопросы