从屏幕和/或外部键盘检测iOS中的按键

从屏幕和/或外部键盘检测iOS中的按键

问题描述:

是否有任何可能的方法检测屏幕键盘和/或外部键盘上的iOS上的所有按键?these?我知道“接受”的方式来捕捉打字文本是使用一个不可见的文本框,但似乎只抓住了“文本”,而不是实际的按键(没有Ctrl,Alts,Shift等)从屏幕和/或外部键盘检测iOS中的按键

我可以在文档中找不到任何暗示这是可能的东西,尽管它看起来很基本。我错过了什么,或者我们真的不能在iOS中实现这一目标?

谢谢!

您可以覆盖的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