繁体   English   中英

CGEventTapCreate在macOS Mojave中返回null

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM