使用NSAccessibility API的Cocoa应用程序需要在Universal Access pref窗格中检查“启用辅助设备访问”。我看到很多应用程序在运行时被禁用时会弹出警告。如何以编程方式检查是否已启用此功能,以便在我的应用中显示警告?
答案 0 :(得分:15)
在OS X 10.9 Mavericks中,AXAPIEnabled()
has been deprecated。
AXIsProcessTrustedWithOptions
:
NSDictionary *options = @{(id)kAXTrustedCheckOptionPrompt: @YES};
BOOL accessibilityEnabled = AXIsProcessTrustedWithOptions((CFDictionaryRef)options);
如果您为YES
传递kAXTrustedCheckOptionPrompt
,系统会向用户显示一个有用的小对话框,其中包含指向系统偏好设置的链接:
“YourApp.app希望使用辅助功能控制此计算机。”
答案 1 :(得分:4)
我认为你正在寻找AXAPIEnabled()
。
extern Boolean AXAPIEnabled ();
引用the docs:
返回是否启用了辅助功能API。
如果当前启用了辅助功能API,则返回TRUE,否则返回 FALSE。
如果没有辅助功能API,辅助应用程序将无法运行 启用或调用进程不是可信任的辅助功能 客户。用户可以通过选中“启用”来启用辅助功能API “通用访问首选项中的辅助设备访问。