Rok*_*Rok 7 macos events multi-touch gesture
我想在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
Run Code Online (Sandbox Code Playgroud)
非手势类型的值似乎直接映射到kCGEvent<TYPE>
中的值CGEventTypes.h
,因此可以合理地预期手势事件类型将起作用:
CGEventSourceRef eventSource = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState);
CGEventRef event = CGEventCreate(eventSource);
CGEventSetType(event, NSEventTypeMagnify);
//continue to set up the event
Run Code Online (Sandbox Code Playgroud)