[英]CGEventTapCreate returns null in macOS Mojave
我完全相信已经使用了很多年的逻辑。 我正在使用它来监听应用程序在后台时的键盘事件(热键)。
CFMachPortRef eventTap = CGEventTapCreate(kCGSessionEventTap,
kCGHeadInsertEventTap,
kCGEventTapOptionDefault,
CGEventMaskBit(kCGEventKeyDown) | CGEventMaskBit(kCGEventFlagsChanged),
myCGEventCallback,
nil);
if (!eventTap) {
printf("error: event tap register failed\n");
return false;
}
代码没有更改,并且一直有效到最新的mojave更新为止。 我该如何排除故障原因? 有谁知道我该如何再次使其正常工作?
经过一番战斗后,这项工作正常了。 将此添加到您的info.plist:
<key>NSAppleEventsUsageDescription</key>
<string></string>
然后转到系统偏好设置->安全->隐私->可访问性,并确保您的应用程序在那里并已检查。
如果已经存在并且一直在发生,请将其删除并再次添加。 每当我重新构建应用程序时,我都必须这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.