您好,我是 Cocoa 编程的新手,想知道如何为系统范围的事件(例如鼠标拖动)创建监听器。我已将其添加到我的应用程序中(我在另一篇文章中看到了它):
static CGEventRef eventFunction(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *refcon)
{
printf("event triggered\n");
return event;
}
但它从未被调用过,我不确定我应该在哪里注册回电。
最佳答案
监视全局鼠标事件的最简单方法是使用 NSEvent
类方法 addGlobalMonitorForEventsMatchingMask:handler:
例子:
[NSEvent addGlobalMonitorForEventsMatchingMask:NSLeftMouseDraggedMask
handler:^(NSEvent *event) {
NSLog(@"Dragged...");
}];
请注意,这仅适用于其他 应用程序,要在您自己的应用程序中获取这些事件,您必须添加一个额外的本地 事件处理程序。
关于objective-c - OSX/ cocoa : Listening for system wide mouse drag events,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7608314/