iOS中的键盘快捷键?

Wil*_*and 9 cocoa-touch objective-c ipad ios

是否有可能在第三方iPad/iPhone应用程序中捕获命令键序列?

长版:

在我使用它闪闪发光的键盘底座的新iPad的发现之旅中,我发现,在标准问题文本视图中编辑文本时,我非常高兴.命令范围从⌘C/⌘P复制粘贴和^ A,^ B,^ E和朋友的线和字符跳跃工作.

到目前为止很好,是吗?问题是,这种令人着迷的行为似乎仅限于文本字段,更具体地说,标准问题文本字段.我真正想要的是捕捉这些事件供我自己使用.

我经常有很多应用程序发现的一个问题是,他们往往要么是接近无用,或至少麻烦,没有键盘底座(如iWork套件),或接近无用,或至少繁琐,键盘dock(大多数其他应用程序不依赖于文本输入,而是触摸手势[也就是说,大多数其他应用程序时期]).

许多游戏,例如"文明革命",以及类似的游戏,只需简单地添加使用箭头键移动单位和输入键到结束转弯的功能,就可以大大受益.

那么问题就在于:如上所述:有没有办法捕获和响应这些事件,以便为那些希望拥有硬件的人提供触摸命令的替代方案?

免责声明:当然,我无意开发完全依赖键盘输入的应用程序,其他人也不应该这样做.触摸界面至关重要.它并不总是完全实用.

Cor*_*ger 6

在iOS中从键盘输入的唯一方法(我知道)是使用UITextInput协议.不幸的是,该协议没有为您提供按下的原始密钥,而是向您发送"插入此字符串"和"将插入符号移动到此位置"的消息.因此,为了知道按下箭头键需要你进行一些挖掘.

对于带有修饰键的快捷键,如复制/粘贴或撤消/重做,Apple似乎只支持基础知识,并且不允许您创建自定义键.他们使用的方法UIResponder:–canPerformAction:withSender:和undoManager.

因此,如果我正在编写游戏并希望利用键盘,我会将其子类化UIResponder并使其符合UITextInput协议.然后让它成为第一个响应者.然而,如果没有物理键盘,这可能会调出软件键盘.

我自己的免责声明:我没有UITextInput以一种不打算使用的方式完成所有艰苦的工作,所以我不知道实际让它工作的可行性.我真的不想.相反,让我们所有的文件错误报告让Apple创建一个API,让我们从键盘获得更精确的输入.


goe*_*etz 4

在 iOS 7 中,添加了UIResponder属性keyCommands和类来支持快捷方式。UIKeyCommand只需重写keyCommands即可返回一个数组UIKeyCommand,然后您就可以开始了。