以编程方式确定是否在Cocoa应用程序中选中了“为辅助设备启用访问”

时间:2011-08-03 21:26:26

标签: cocoa accessibility

使用NSAccessibility API的Cocoa应用程序需要在Universal Access pref窗格中检查“启用辅助设备访问”。我看到很多应用程序在运行时被禁用时会弹出警告。如何以编程方式检查是否已启用此功能,以便在我的应用中显示警告?

2 个答案:

答案 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希望使用辅助功能控制此计算机。”

enter image description here

答案 1 :(得分:4)

我认为你正在寻找AXAPIEnabled()

extern Boolean AXAPIEnabled ();  

引用the docs

  

返回是否启用了辅助功能API。

     

如果当前启用了辅助功能API,则返回TRUE,否则返回   FALSE。

     

如果没有辅助功能API,辅助应用程序将无法运行   启用或调用进程不是可信任的辅助功能   客户。用户可以通过选中“启用”来启用辅助功能API   “通用访问首选项中的辅助设备访问。