2017-07-18 57 views
-1

我目前正在OSX上開發一個應用程序,我想在用戶按下鍵盤組合鍵時打開我的應用程序。OSX Swift:如何收聽按鍵?

+0

你知道的,目前出現此行爲的任何應用程序?這個問題對於預期的效果有點模糊。 –

+0

看看https://github.com/shpakovski/MASShortcut,它可能是你正在尋找的。 – mttrb

+0

我相信你在找什麼叫做「熱鍵」。例如:https://stackoverflow.com/q/8201338/2227743(必須有Swift版本可用)。 – Moritz

回答

0

是有可能

如果您的應用程序已經被用戶打開,你只需要實現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個原因:

  1. 這是可笑的不安全。您正在存儲您的application's sandbox以外的極其敏感的數據,這些數據很容易被窺視者看到。
  2. 這是一種嚴重的違背信任。沒有其他第三方應用程序進行這種行爲,所以,當你的應用程序在使用,用戶肯定會三思而後行已經安裝了它,主要是因爲:
  3. 這是多餘的。用戶可以自動開啓各種應用程序。無論是通過

但是,如果你是絕對肯定,你需要這個功能,有一個generally agreed upon solution(編輯)

小號青梅友好的建議

正如我敢肯定你已經注意到,您的問題不是特別受歡迎。爲了提高你在未來得到的答覆,只是讀它,TL的Stack Overflow Question Guide;醫生需要:

  • 作爲具體的關於您的問題(你試過什麼,上下文等)
  • 谷歌搜索你的問題事先
+0

我很高興安裝阿爾弗雷德,我可以啓動使用熱鍵組合。我還沒有失去對阿爾弗雷德開發人員或我的Mac安全的信任。雖然我不想讓所有的應用程序都能通過熱鍵啓動,但我沒有看到某些實用程序以這種方式啓動的問題。 – mttrb

+0

我同意,對於某些應用程序而言,這是可取的,我沒有說在任何情況下都不應該這樣做。這就是說,對絕大多數應用程序來說,這不僅是不必要的,而且是有害的。許多開發人員在技術上傾向於並且通常喜歡他們的應用程序,但他們習慣於實現這種功能,因此應該明確這樣做的缺點。當然,有些時候,偏離平臺標準是正確的做法,但大多數情況下,這樣做是有原因的。 –

+0

@EricAya雖然這是我提供的信息,但我也鏈接到一個可用於處理熱鍵的程序。 –