我完全相信已经使用了很多年的逻辑。我正在使用它来监听应用程序在后台时的键盘事件(热键)。
CFMachPortRef eventTap = CGEventTapCreate(kCGSessionEventTap,
kCGHeadInsertEventTap,
kCGEventTapOptionDefault,
CGEventMaskBit(kCGEventKeyDown) | CGEventMaskBit(kCGEventFlagsChanged),
myCGEventCallback,
nil);
if (!eventTap) {
printf("error: event tap register failed\n");
return false;
}
代码没有更改,并且在最新的mojave更新之前已经有效了很长时间。我该如何排除故障原因?有谁知道我该如何再次使其正常工作?
答案 0 :(得分:1)
经过一番战斗后才开始运作。将此添加到您的info.plist:
<key>NSAppleEventsUsageDescription</key>
<string></string>
然后转到系统偏好设置->安全->隐私->可访问性,并确保您的应用已存在并已检查。
如果已经存在并且一直在发生,请将其删除并再次添加。每次重建应用程序时,我都必须这样做。