首页 > 解决方案 > 哪些 API 触发“应用程序想使用辅助功能控制这台计算机”?

问题描述

我注意到在较新的 macOS 版本上,我的应用程序突然显示以下安全警告:

截屏

(截图取自这里,因为我的系统是德语的)

现在我想知道为什么 macOS 会显示这个。我不记得使用过任何辅助功能,但我当然必须使用一些,否则不会出现此安全警告。我检查了我的代码,我没有使用NSAccessibility. 但是,既然我收到了这个警告,那么肯定还有其他触发它的调用。但是如何找到它们呢?

这就是为什么我想问我如何才能找出实际上是什么 Cocoa API 导致了这个安全警告的出现?我应该寻找什么?是否有触发此警告的函数/类列表?

请注意,我没有使用 Xcode,而是使用一组 makefile 以非常老式的方式构建我的应用程序。

标签: macoscocoa

解决方案


这并不是问题的完整答案,但至少我现在找到了罪魁祸首。我有一些代码允许用户以编程方式移动鼠标光标。禁用此代码会使警告消失。代码如下所示:

CGPoint p;
CGEventRef me;

p.x = x;
p.y = y;

if(!(me = CGEventCreateMouseEvent(NULL, kCGEventMouseMoved, p, 0))) return;

CGEventPost(kCGHIDEventTap, me);
CFRelease(me); 

推荐阅读