2017-10-20 200 views
0

是否有任何可能的方法檢測屏幕鍵盤和/或外部鍵盤上的iOS上的所有按鍵?these?我知道「接受」的方式來捕捉打字文本是使用一個不可見的文本框,但似乎只抓住了「文本」,而不是實際的按鍵(沒有Ctrl,Alts,Shift等)從屏幕和/或外部鍵盤檢測iOS中的按鍵

我可以在文檔中找不到任何暗示這是可能的東西,儘管它看起來很基本。我錯過了什麼,或者我們真的不能在iOS中實現這一目標?

謝謝!

回答

0

您可以覆蓋的ViewController的keyCommands添加觸發器動作:

例如:

  //MyViewController 

      override var keyCommands: [UIKeyCommand]?{ 

      //Get UIKeyCommand 

       var keys = [UIKeyCommand]() 

      //Add triggle for Num only 

        for num in "123456789".characters { 

         keys.append(

    UIKeyCommand(input:String(num),modifierFlags: 
    UIKeyModifierFlags(rawValue: 0), action: 
    #selector(MyViewController.keyCommand(_:)), discoverabilityTitle: 
     NSLocalizedString("keydiscover_number", 
     comment: "KeyDiscover  Number"))) 


         } 
     } 



//The Triggle 

func keyCommand(_ sender: UIKeyCommand) { 
         print("Number Clicked"); 
        } 

https://developer.apple.com/documentation/uikit/uiresponder/1621141-keycommands

+0

在你keyCommand回調,我沒有看到任何人知道哪個鍵雖然被壓了。我真的需要爲每一個可能的密鑰回撥嗎? –

+0

你可以檢查按下哪個按鍵triggle:let theEvent = sender.input ifEvent == UIKeyInputDownArrow { return moveDown(theEvent as AnyObject) } – slee