我用 swift 构建了一个计算器,我希望拥有蓝牙键盘的 iPad 用户能够在不受屏幕键盘干扰的情况下打字。我认为最好的方法是使用 UIKeyCommand
s,但我遇到了一个问题:而使用 objective-c 你可以做这样的事情 [UIKeyCommand keyCommandWithInput:@"f"modifierFlags:0 action:@selector(keyPressF)]
,在 swift 中不能有 '0' 修饰符标志。
请回答其中一个问题!
当用户在 iPad 蓝牙键盘上键入某个字符时,没有文本字段作为第一响应者,并且没有按 control 或 option 键,我如何让事情 swift 发生?
当我按下 command-j 时发生了一些事情。当我按下 iPad BT 键盘上的 4 键时,我可以让事情发生吗?”
最佳答案
这两个我都可以帮你。
在 Swift 2.0 及更高版本中,您必须传递一个空数组而不是 0。要使您的初始化程序正常工作,它看起来像:
UIKeyCommand(input: "f", modifierFlags: [], action: “keyPressF”)
。原因是因为 0 没有在 UIKeyModifierFlags 结构中的任何地方定义。这在 UIKit 中是很常见的做法,因此最好习惯将此模式用于空选项。是的!只需在初始化程序中传递
input: "4"
而不是input: "j"
。
关于ios - 没有修饰符标志的键盘命令——Swift 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35671226/