我有几个iOS应用程序,它们提供固有的线性组织信息,允许用户通过屏幕控制向前和向后移动数据。我想允许使用键盘底座或配对蓝牙键盘的用户使用箭头键来回移动。由于应用程序是全屏的,因此用户体验非常重要,因为没有显示屏幕键盘作为副作用的风险。
我无法在Apple的文档中找到允许我这样做的API;但我无法确定我是否使用了正确的搜索字词。
哪些API可以让我实现这个目标?
更新:我已将其作为Apple's bug reporting site的增强功能提出。
答案 0 :(得分:3)
您可以参考UIKeyInput
和UIKeyInputDelegate
轻松确定按下了哪些箭头键。您正在寻找的方法是positionFromPosition:inDirection:offset:
。
调用该方法后(iOS用它来确定选择范围),然后调用setSelectedText:
。将NSLog
语句放在positionFromPosition:inDirection:offset:
中以确定它是如何工作的(您负责管道)。
另请查看SimpleTextInput。这将为您提供子类化UITextInput
。
答案 1 :(得分:3)
How can I respond to external keyboard arrow keys?中的答案 - 创建隐藏文本字段并对选择更改作出反应 - 为我工作。
答案 2 :(得分:0)
实际上并不知道,我怀疑答案是“你不能,不能以官方方式”。
根据Apple的说法,由于用户友好的用户界面是iPad平台的首要任务,我认为他们正在尽其所能阻止依赖键盘可用的行为。应用程序的行为应相同,并提供相同的功能,无论是否有硬件键盘。键盘热键或不使用屏幕元素的导航之类的东西可能是禁忌的。因此。
但是,就像我说的那样,这只是猜测。
答案 3 :(得分:0)
您可以通过添加对左/右滑动或拖动手势的支持来完全消除键盘,这样用户就可以将应用程序视为照片库。不需要屏幕控制 - 它是设备本地导航范例,易于在应用启动闪屏上解释。
如果外部键盘是必需,以支持其他应用数据收集功能,用户将遇到“大猩猩手臂”问题......