在处理Quartz事件时,我似乎找不到关于0x1D,29是什么以及如何处理事件的任何文档。
我在这里查看过各种头文件... https://developer.apple.com/documentation/coregraphics/cgeventtype?language=objc
使用触摸栏和触控板时会产生相关事件。
我的特定问题是点击陷阱键盘上的软键,如转义。当用户触摸转义时,将触发一个0x1D事件。如果未从事件回调中返回此事件,则永远不会触发kCGEventKeyDown和kCGEventKeyUp事件。如果返回此事件,则将触发后续事件,就像传统键盘上的按钮一样。
eventTap = CGEventTapCreate(kCGHIDEventTap, kCGHeadInsertEventTap, 0, kCGEventMaskForAllEvents, myCGEventCallback, NULL);
//No touch bar soft key events will ever fire
CGEventRef myCGEventCallback(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *refcon) {
if(type == 0x1D) {
return NULL;
}
}
Run Code Online (Sandbox Code Playgroud)
显然,我总是可以盲目地返回此类事件,但我宁愿了解该事件代表什么以及CGEventRef中可用的信息。