我正在尝试通过附加全局事件侦听器来侦听鼠标事件和键盘事件,如this great thread中所述。
然而,当调用Mission Control时,它似乎阻止了我的听众。我真的很感激有关如何解决这个问题的任何建议。
答案 0 :(得分:0)
我能够通过使用碳Quartz Event Services Library中提供的事件点击来解决这个问题。
Objective-C示例代码(我无法在Swift中使用它):
假设您已定义C函数
CGEventRef yourCallbackFunction(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *userinfo);
然后,您可以使用此代码来监听事件SomeEventHere
:
CFMachPortRef ref = CGEventTapCreate(kCGHIDEventTap,
kCGHeadInsertEventTap,
kCGEventTapOptionListenOnly,
CGEventMaskBit(kCGEventSomeEventHere),
(CGEventTapCallBack)yourCallbackFunction,
userinfo);
CFRunLoopSourceRef src = CFMachPortCreateRunLoopSource(kCFAllocatorDefault, ref, 0);
CFRunLoopAddSource(CFRunLoopGetMain(), src, kCFRunLoopDefaultMode);