ios – 如何让UIKeyInput重复执行deleteBackwards调用

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

解决方法

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

>使用键盘上的叠加层伪造它(请参阅@ pho0的评论)
>实现自定义键盘,将其安装为视图或视图控制器的inputView,并实现支持自动重复的自定义协议.

如果您只需要删除键来自动重复,则解决方案1可以正常工作,但如果您需要所有键来自动重复覆盖代码变得像自定义键盘选项一样复杂. (叠加层需要每个键的矩形,所以为什么不只是替换底层键盘).

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

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

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

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

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...