如何使UIKeyInput重复删除后退调用

时间:2011-07-06 04:27:00

标签: ios uiresponder

目前我正在使用UIKeyinput,但即使长时间按住删除键,它也只发送一个delteBackward事件。 当我长时间保持删除时,如何让它向我发送多个事件呼叫?

2 个答案:

答案 0 :(得分:3)

我见过人们做的一件事就是在键盘按钮上放一个假按钮。当有人按住它时,让计时器在每次发射时删除最后一个字母。

希望这有帮助。

答案 1 :(得分:3)

没有简单的方法让系统键盘自动重复。这些有两个选择:

  1. 使用键盘上的叠加层进行假冒(请参阅@ pho0的评论)
  2. 实现自定义键盘,将其作为视图或视图控制器的inputView安装,并实现支持自动重复的自定义协议。
  3. 如果您只需要删除键来自动重复,则解决方案1可以正常工作,但如果您需要所有自动重复键的重叠代码变得像自定义键盘选项一样复杂。 (叠加层需要每个键的矩形,所以为什么不只是替换底层键盘。)

    解决方案2涉及一定量的“前期”工作......您可以这样做的一种方法是定义键帽类(如物理键)和键盘布局类。

    我已经在我已经完成的项目中实现了两个解决方案,但我目前使用解决方案2,因为我可以创建我喜欢的任何键盘。在简单的情况下,使用永远不需要知道它不是系统键盘。对于高级用户,他们可以根据需要自定义键盘。

    对于它的价值,我发现让键盘类变得愚蠢是有用的;它只是传达一个密钥已经过渡到正在下降或已经过渡到正在上升。上面的另一个类决定应该采取什么行动。

    在某些方面,我知道这不是你想要的答案,但我希望它有所帮助, IDZ