没有修饰符标志的键命令-Swift 2

owl*_*ipe 1 bluetooth ipad ios swift

我在swift中构建了一个计算器,我希望拥有蓝牙键盘的iPad用户可以在没有任何屏幕键盘干扰的情况下打字.我认为最好的方法是使用UIKeyCommands,但是我遇到了一个问题:而使用objective-c你可以做类似的事情[UIKeyCommand keyCommandWithInput:@"f" modifierFlags:0 action:@selector(keyPressF)],在swift中不能有'0'修饰符标志.

请回答其中一个!

当用户在没有文本字段作为第一响应者且没有按下控制或选项键的情况下在iPad蓝牙键盘上键入特定字符时,如何快速实现?

当我按下command-j时会发生一些事情.当我按下我的iPad BT键盘上的4键时,我可以做些什么吗?"

小智 5

我可以帮助你解决这些问题.

  1. 在Swift 2.0及更高版本中,您必须传递一个空数组而不是0.要使初始化程序工作,它看起来像:UIKeyCommand(input: "f", modifierFlags: [], action: "keyPressF").原因是因为0未在UIKeyModifierFlags结构中的任何位置定义.这在UIKit中很常见,所以习惯将这种模式用于空选项是个好主意.

  2. 是! 只需传入input: "4"初始化程序而不是input: "j".