【问题标题】:Global key Accessibility in cocoa可可中的全局关键可访问性
【发布时间】:2014-10-30 14:33:28
【问题描述】:

我在 Cocoa 工作。

我已按照link 推荐的答案对我的应用程序进行了更改

我有以下问题:

  1. 我是否可以在征得用户同意后以编程方式将我的应用程序添加到系统辅助功能列表中,以便在系统偏好设置 > 安全和隐私 > 隐私 > 辅助功能中查看它。(就像他们在应用程序请求用户显示通知的 iOS 中那样做,并且用户可以在不允许和确定之间进行选择)。
  2. 应用程序成功添加到辅助功能列表后,如何以编程方式获取辅助功能列表中复选框的值?

我期待一个沙盒/“应用商店”兼容的答案

【问题讨论】:

  • 这个问题可能会在其中一个苹果列表中获得更多关注。

标签: macos cocoa


【解决方案1】:

您可以 1) 通过传入 kAXTrustedCheckOptionPrompt 自动完成,同时使用 AXIsProcessTrustedWithOptions 查询 2):

NSDictionary *prompt = @{kAXTrustedCheckOptionPrompt:@YES};
BOOL accessible = AXIsProcessTrustedWithOptions((CFDictionaryRef)prompt);

这将为同意信任您的应用的用户提供当前系统标准对话框的任何内容。

【讨论】:

  • 谢谢。这适用于启用 sanboxed 的环境吗?其实,我一直在寻找“App Store”兼容的解决方案
  • 我相信这就是这个选项的具体用途;您不能在沙箱中自己调用AXMakeProcessTrusted,设置此选项以便系统将用户带到正确的位置以尽可能接近地信任它。
  • 至少在 Mojave / macOS 10.14.6 上仍然有效。我的(基于 ARC 的)项目要求我将密钥转换为 NSString,不过:(__bridge NSString *)kAXTrustedCheckOptionPrompt:@YES.
猜你喜欢
  • 1970-01-01
  • 2018-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多