macos - 哪些 API 触发“应用程序想使用辅助功能控制这台计算机”?
问题描述
我注意到在较新的 macOS 版本上,我的应用程序突然显示以下安全警告:
(截图取自这里,因为我的系统是德语的)
现在我想知道为什么 macOS 会显示这个。我不记得使用过任何辅助功能,但我当然必须使用一些,否则不会出现此安全警告。我检查了我的代码,我没有使用NSAccessibility
. 但是,既然我收到了这个警告,那么肯定还有其他触发它的调用。但是如何找到它们呢?
这就是为什么我想问我如何才能找出实际上是什么 Cocoa API 导致了这个安全警告的出现?我应该寻找什么?是否有触发此警告的函数/类列表?
请注意,我没有使用 Xcode,而是使用一组 makefile 以非常老式的方式构建我的应用程序。
解决方案
这并不是问题的完整答案,但至少我现在找到了罪魁祸首。我有一些代码允许用户以编程方式移动鼠标光标。禁用此代码会使警告消失。代码如下所示:
CGPoint p;
CGEventRef me;
p.x = x;
p.y = y;
if(!(me = CGEventCreateMouseEvent(NULL, kCGEventMouseMoved, p, 0))) return;
CGEventPost(kCGHIDEventTap, me);
CFRelease(me);
推荐阅读
- xcode - 模拟器仅在 CI 测试期间崩溃
- node.js - AWS ALB 从 lambda 返回 502 Bad Gateway
- javascript - 猫头鹰轮播加载问题
- visual-studio - ASP.NET Core 应用在 VS Code 而非 VS 2017 上启动
- python - 调用 SubpixelConv2D 函数时出现“ValueError: None values not supported”
- html - 如何使输入搜索栏、麦克风图像和两个小框响应?
- rest - PUT 功能与 REST API 中的 POST 有何不同
- css - 页面的导航栏隐藏在幻灯片动画下。如何防止这种情况?我想在顶部单独显示导航栏,动画照常进行
- c# - 如何增加由 . 分隔的字符串值编号(即 1.2.3 == 1.2.4)
- extjs - extjs 问题将 extraParams 发送到restapi