如何为开发中的 Swift 应用程序提供可访问权限

Ven*_*uri 5 permissions macos accessibility swift

我正在尝试监听全局键盘事件,并让我的应用程序在检测到某些按键时执行特定的操作。为此,我想使用:

class ViewController: NSViewController {

    override func viewDidLoad() {

        super.viewDidLoad()
        //Add keyboard event listener.
        NSEvent.addGlobalMonitorForEvents(matching: .keyDown, handler:
        {
            print("key down!");
            print($0.keyCode);
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在以这种方式检查 appDelegate.swift 中的可访问权限:

func applicationDidFinishLaunching(_ aNotification: Notification) {
    // Insert code here to initialize your application
    //check if the process is trusted for accessibility. This is important for us to listen for keyboard events system wide.
    let checkOptPrompt = kAXTrustedCheckOptionPrompt.takeUnretainedValue() as NSString

    let options = [checkOptPrompt: true]
    let isAppTrusted = AXIsProcessTrustedWithOptions(options as CFDictionary?);
    if(isAppTrusted != true)
    {
        print(  "please allow accessibility API access to this app.");
    }
}
Run Code Online (Sandbox Code Playgroud)

我继续在系统偏好设置中授予 Xcode 可访问权限。然而,我看到日志语句要求授予此应用程序的可访问权限。简而言之,这是我的大问题,分为两个小问题:

  1. 如何授予此应用程序完整权限(授予辅助功能权限)?
  2. 如果未启用访问权限,如何显示弹出窗口要求用户授予访问权限?