目前我正在使用UIKeyinput,但它只发送一个delteBackward事件,即使我长时间按住Delete键也是如此。当我长时间按住delete键时,如何让它向我发送多个事件调用?
发布于 2012-05-12 17:55:13
没有简单的方法可以让系统键盘自动重复。这给你留下了两个选择:
通过使用键盘上的覆盖来伪造它(请参阅@pho0)
如果你只需要delete键来自动重复,那么解决方案1效果很好,但是如果你需要所有的键来自动重复,覆盖代码就会变得和自定义键盘选项一样复杂。(覆盖的每个键都需要一个矩形,所以为什么不直接替换底层的键盘呢?)
解决方案2涉及一定数量的“前期”工作……可以这样做的一种方法是定义一个键帽类(类似于物理键)和一个键盘布局类。
我已经在我参与的项目中实现了这两种解决方案,但我目前使用的是解决方案2,因为我可以创建我喜欢的任何键盘。在简单的情况下,用户永远不需要知道它不是系统键盘。对于高级用户,他们可以根据自己的喜好定制键盘。
无论如何,我发现将键盘类设为哑类是有用的;它只是传达一个键已经转换为按下或转换为向上。上面的一个附加类,它决定应该采取什么操作。
在某些方面,我知道这不是你想要的答案,但我希望它能有所帮助,IDZ
发布于 2012-05-08 04:10:40
我见过人们做的一件事就是在键盘按钮上放一个假按钮。当有人按住它时,让计时器在每次触发时删除最后一个字母。
希望这能有所帮助。
https://stackoverflow.com/questions/6591548
复制相似问题