如何在 macOS 中请求辅助功能权限

Ste*_*zen 7 macos

由于 Mojave 没有可访问性许可,以下代码不起作用

KeyMap keyStatesBig; GetKeys(keyStatesBig);

但是是否有一个键可以放在 info.plist 中以询问用户对应用程序启动的许可?

The*_*man 5

这是不可能的info.plist

您可以在启动时自己询问用户。使用AXIsProcessTrusted来确定是否启用了辅助功能。

如果未启用,您可以显示一个对话框,要求用户将其打开。

您还可以为用户打开相关首选项:

NSString* prefPage = @"x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility";
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:prefPage]];
Run Code Online (Sandbox Code Playgroud)

看看 Dropbox 是如何做到的(这是自定义 UI):

在此处输入图片说明

(该Turn on Accessibility按钮只是将系统偏好设置打开到正确的位置,如上所述)