我目前正在OSX上開發一個應用程序,我想在用戶按下鍵盤組合鍵時打開我的應用程序。OSX Swift:如何收聽按鍵?
回答
是有可能
如果您的應用程序已經被用戶打開,你只需要實現keyDown(with event: NSEvent) function:
func keyDown(with event: NSEvent) {
guard let e = event.characters else {
return
}
//Do something based on keyboard input
}
如果你想獲得訪問密鑰時,您的應用程序沒有開放,你基本上是implemented a keylogger
但你真的不應該
從你的問題,它似乎是你想要的一種選擇。這是有問題的3個原因:
- 這是可笑的不安全。您正在存儲您的application's sandbox以外的極其敏感的數據,這些數據很容易被窺視者看到。
- 這是一種嚴重的違背信任。沒有其他第三方應用程序進行這種行爲,所以,當你的應用程序在使用,用戶肯定會三思而後行已經安裝了它,主要是因爲:
- 這是多餘的。用戶可以自動開啓各種應用程序。無論是通過
- 他們自己Automator Script
- 一個專門的Launcher Application
- 通過使用Finder Service
但是,如果你是絕對肯定,你需要這個功能,有一個generally agreed upon solution(編輯)
小號青梅友好的建議
正如我敢肯定你已經注意到,您的問題不是特別受歡迎。爲了提高你在未來得到的答覆,只是讀它,TL的Stack Overflow Question Guide;醫生需要:
- 作爲具體的關於您的問題(你試過什麼,上下文等)
- 谷歌搜索你的問題事先
我很高興安裝阿爾弗雷德,我可以啓動使用熱鍵組合。我還沒有失去對阿爾弗雷德開發人員或我的Mac安全的信任。雖然我不想讓所有的應用程序都能通過熱鍵啓動,但我沒有看到某些實用程序以這種方式啓動的問題。 – mttrb
我同意,對於某些應用程序而言,這是可取的,我沒有說在任何情況下都不應該這樣做。這就是說,對絕大多數應用程序來說,這不僅是不必要的,而且是有害的。許多開發人員在技術上傾向於並且通常喜歡他們的應用程序,但他們習慣於實現這種功能,因此應該明確這樣做的缺點。當然,有些時候,偏離平臺標準是正確的做法,但大多數情況下,這樣做是有原因的。 –
@EricAya雖然這是我提供的信息,但我也鏈接到一個可用於處理熱鍵的程序。 –
- 1. 如何收聽搜索鍵?
- 2. 同時收聽多個按鍵事件
- 3. 收聽退出鍵
- 4. 如何收聽searchView中的鍵盤搜索按鈕
- 5. 如何收聽jdialog容器中的按鍵事件?
- 6. 在Mac OSX上收聽播放/下一個/上一個熱鍵
- 7. 在Swift中監聽硬件鍵盤按鍵
- 8. 聽按鍵或按鈕按
- 9. 如何獲得'enter'按鍵按鍵事件監聽器?
- 10. Android OS如何偵聽電源按鍵按鍵?
- 11. 如何收聽EditText?
- 12. 如何收聽JTextArea
- 13. 收聽Swift中的InfowWindow點擊
- 14. 在Swift 4中收聽NSWorkspace通知
- 15. 按鈕點擊收聽
- 16. 如何在Mac OSX上獲取鍵盤按鍵狀態?
- 17. 如何收聽HTML頁面中的按下提交按鈕
- 18. AS3監聽按鍵,但全局監聽
- 19. 如何使NSWindow從按鈕動作出現(Swift 3)(Mac OSX)
- 20. 收聽AngularJS部分中的按鍵事件
- 21. 收聽按鍵和「點擊外部」彈出/特定類
- 22. 在MATLAB縮放模式下收聽按鍵
- 23. 在(ios sdk)中按下某個鍵時收聽
- 24. 收聽片段中按下的「返回」鍵
- 25. 如何在軟鍵盤上聆聽按鍵?
- 26. 如何聆聽Java中按下/鍵入的TAB鍵?
- 27. 使用asyncio聽按鍵
- 28. Android:聽電源鍵按
- 29. 背景按鍵監聽器
- 30. 聽AppleScript中的按鍵
你知道的,目前出現此行爲的任何應用程序?這個問題對於預期的效果有點模糊。 –
看看https://github.com/shpakovski/MASShortcut,它可能是你正在尋找的。 – mttrb
我相信你在找什麼叫做「熱鍵」。例如:https://stackoverflow.com/q/8201338/2227743(必須有Swift版本可用)。 – Moritz