macos - 有没有办法在 Mac OS X 上触发手势事件?

标签 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

非手势类型的值似乎直接映射到 kCGEvent<TYPE> CGEventTypes.h 中的值因此可以合理地预期手势事件类型将起作用:

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

关于macos - 有没有办法在 Mac OS X 上触发手势事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2487331/

相关文章:

python - 导入大数据文件的有效方法,Python

javascript - 没有模型的 Backbone.js datepicker 事件监听器

javascript - jQuery.trigger() 函数后的回调

java - 输入文本字段不会在单击鼠标时移动光标?

java - Android 多点触控问题

Objective-C:按下按键时移动框架

快速 Mac 操作系统 : make trackpad reflect display size for NSTouch events

macos - 如何将 NSWindow 绑定(bind)到另一个 NSWindow?

android - 在 Android WebView 中启用/禁用缩放

c# - 准确的捏合缩放