您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在macOS的Swift中全局检测击键?

如何在macOS的Swift中全局检测击键?

看起来“重复”标记已被删除,但是我将其汇总到注释部分中的答案也已删除。因此,对于后代:

之所以不起作用,是因为与其他一些事件处理程序相比,.keyDown事件的全局监视器需要更多的权限,包括某些人认为与之重复的事件处理程序。这主要是因为全局.keyDown监视器可以用于恶意目的,例如键盘记录程序。因此,还有其他安全措施可以确保我们合法:

1)您的应用程序需要进行代码签名。

2)您的应用 无需 启用应用沙箱,并且:

3)您的应用需要在“安全性和隐私”首选项窗格中的“辅助功能”下进行注册

用户必须启用其中的第三个功能,但是您可以使用以下代码朝该方向微调它们:

let options: NSDictionary = [kAXTrustedCheckOptionPrompt.takeUnretainedValue() as String : true]
let accessEnabled = AXIsProcessTrustedWithOptions(options)

if !accessEnabled {
    print("Access Not Enabled")
}

这将提示用户,让他/她可以选择自动打开适当的首选项窗格,在该窗格中,用户可以允许您的应用通过可访问性API来控制计算机,假设您的应用已签名且未沙盒操作,则允许您全局访问.keyDown监视器正常工作。

Swift 2022/1/1 18:13:36 有696人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶