使用NSAccessibility API的可可应用程序需要“启用辅助设备访问”才能在通用访问预设窗格中进行检查。我看到许多应用程序弹出警告,如果它们在运行时被禁用。我如何以编程方式检查是否已启用,这样我可以在我的应用程序中显示警告?以可编程方式确定是否在Cocoa应用程序中检查“启用辅助设备访问”
回答
我认为你正在寻找AXAPIEnabled()
。可访问性API是否启用
返回:
extern Boolean AXAPIEnabled();
报价the docs。
如果可访问性API当前已启用,则返回TRUE,否则为 FALSE。
如果可访问性API不是 启用或者调用过程不是可信的可访问性 客户端,则辅助应用程序将不起作用。用户可以通过在通用访问首选项中选中“为辅助设备启用 访问权限”来启用辅助功能API。
您还应该阅读[AXIsProcessTrusted/AXMakeProcessTrusted](http://www.cocoabuilder.com/archive/cocoa/135734-axisprocesstrusted-axmakeprocesstrusted.html)讨论。你会发现你还应该检查'AXIsProcessTrusted()'。 – 0xced
AXAPIEnabled()'已在OS X 10.9中弃用Mavericks – pkamb
是的,对于10.9中的此功能,请参阅[此问题](http://stackoverflow.com/questions/17693408/enable-access-for-assistive-devices - 以程序为基础的10-9)及其评分最高的答案。 – zpasternack
在OS X 10.9小牛,AXAPIEnabled()
has been deprecated。
AXIsProcessTrustedWithOptions
可以用来代替:
NSDictionary *options = @{(id)kAXTrustedCheckOptionPrompt: @YES};
BOOL accessibilityEnabled = AXIsProcessTrustedWithOptions((CFDictionaryRef)options);
如果您在YES
传为kAXTrustedCheckOptionPrompt
,系统会向用户显示一个有用的小对话框,链接到系统偏好设置:
“YourApp .app想要使用辅助功能来控制此计算机。“
- 1. 以编程方式启用辅助设备访问10.9
- 2. 以编程方式启用对辅助设备的访问
- 3. 以编程方式启用辅助设备访问
- 4. 检查设备是否由第三方应用程序锁定
- 5. 如何以编程方式确定是否为SharePoint 2010 Web应用程序启用了匿名访问?
- 6. 以编程方式确定是否从命令行启动AIR应用程序?
- 7. 确定设备是否可以启动Android电子市场应用程序
- 8. 以编程方式检查在Windows上是否启用了IPv6
- 9. 你可以以编程方式检查以确定您的Android设备是否处于深度睡眠模式?
- 10. 如何以编程方式检查应用程序是否安装在Android中?
- 11. 确定Android设备是否以编程方式生根?
- 12. 是否可以确定应用程序的构建方式?
- 13. 是否可以在PHP中以编程方式启用扩展?
- 14. 在j2me中以编程方式访问应用程序权限
- 15. 如何检查蓝牙是否以编程方式启用?
- 16. 以编程方式检查iPhone是否已启用GPS
- 17. 以编程方式为应用程序设置播放设备
- 18. 以编程方式启用MAC OSX辅助技术?
- 19. 以编程方式启用辅助监视器
- 20. 是否有可能以编程方式在Cocoa中打印IKImageBrowserView?
- 21. 检查应用程序是否安装在配对设备中
- 22. 是否可以以编程方式设置应用程序的DPI?
- 23. 以编程方式在设备上上传和启动iPhone/iPad应用程序
- 24. 是否可以在应用程序中关闭设备(iPhone/iPad)?
- 25. 如何以编程方式从启动程序(在已启动设备上)中删除应用程序
- 26. 如何以编程方式在Android中启用/禁用辅助功能服务
- 27. 检查一个特定的应用程序是否可用于Android设备
- 28. iOS应用程序是否可以通过编程方式知道设备是否与APNS有活动连接?
- 29. 如何检查javafx应用程序是否已经以编程方式运行?
- 30. 如何以编程方式检查是否安装了应用程序?
一旦你能够检测到设置已经开启,你如何开始使用辅助访问?需要重新启动应用程序吗? – cksubs
在这里问这个问题,看起来像你需要重新启动:http://stackoverflow.com/questions/9132845/how-do-i-give-my-app-assistive-access-privileges-once-enable-access- for-assis – cksubs