目前我正在使用 UIKeyinput 但即使我长时间按住删除键,它也只会发送一个 delteBackward 事件。当我长时间按住删除时,如何让它向我发送多个事件调用?
问问题
1113 次
2 回答
3
我见过人们做的一件事是在键盘按钮上放一个假按钮。当有人按住它时,让计时器在每次触发时删除最后一个字母。
希望这可以帮助。
于 2012-05-07T20:10:39.550 回答
3
没有简单的方法让系统键盘自动重复。这为您提供了两种选择:
- 通过在键盘上使用覆盖来伪造它(参见@pho0 的评论)
- 实现自定义键盘,将其安装为视图或视图控制器的 inputView,并实现支持自动重复的自定义协议。
如果您只需要删除键自动重复,则解决方案 1 效果很好,但如果您需要所有键自动重复,则覆盖代码变得与自定义键盘选项一样复杂。(覆盖层需要每个键都有一个矩形,所以为什么不替换底层键盘)。
解决方案 2 涉及一定数量的“前期”工作......您可能会这样做的一种方法是定义键帽类(如物理键)和键盘布局类。
我已经在我从事的项目中实现了这两种解决方案,但我目前使用解决方案 2,因为我可以创建我喜欢的任何键盘。在简单的情况下,用户永远不需要知道它不是系统键盘。对于高级用户,他们可以根据需要自定义键盘。
对于它的价值,我发现让键盘类变得愚蠢很有用。它只是传达一个键已转换为向下或已转换为向上。上面的一个附加类决定应该采取什么行动。
在某些方面,我知道这不是您要寻找的答案,但我希望它有所帮助,IDZ
于 2012-05-12T09:55:12.667 回答