小编Dus*_*son的帖子

点击Quartz事件时,CGEventType 0x1D(29)是什么?

在处理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中可用的信息。

macos cocoa objective-c quartz-core

3
推荐指数
1
解决办法
149
查看次数

标签 统计

cocoa ×1

macos ×1

objective-c ×1

quartz-core ×1