我正在構建一個需要監視全域擊鍵的 macOS 應用程式。所以全域事件監聽器將是:
NSEvent.addGlobalMonitorForEvents(matching: NSEvent.EventTypeMask.keyDown) { (event) in
print(event.keyCode)
}
但這并沒有像這個執行緒中提到的那樣做任何事情。我確實通過添加以下內容嘗試了執行緒中給出的答案:
let options: NSDictionary = [kAXTrustedCheckOptionPrompt.takeUnretainedValue() as String : true]
let accessEnabled = AXIsProcessTrustedWithOptions(options)
if !accessEnabled {
print("Access Not Enabled")
} else {
print("Access Granted")
}
這會提示對話框請求訪問,但由于它是一個異步程序,因此授予訪問權限仍然不會將執行緒移動到我可以監控擊鍵的位置。此外,每次啟動應用程式時都會彈出此對話框,就我搜索而言,由于在任何地方都沒有適當的檔案,因此如何輕松地策劃這種優雅的可訪問性請求。
uj5u.com熱心網友回復:
我意識到這是一個 Xcode 錯誤。如果 SwiftUI 預覽提供程式與實際構建同時運行,則會導致這種情況,這會導致與 macOS 的可訪問性權限有些混淆。
清除派生資料目錄后,應用程式按預期作業。你可以這樣做
rm -rf ~/Library/Developer/Xcode/DerivedData
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/428599.html
上一篇:從PDFView列印時如何確定列印面板是否已成功關閉
下一篇:類內的按鈕動作選擇器
