iOS监听键盘的删除按键事件

news/2024/10/17 23:33:36/
  1. 需求场景描述
    最近项目里有个场景,搜索添加成员的时候,需要类似于微信创建讨论组加人时的效果:启动搜索输入文本,点击删除文本,当文本全删除完的时候,在点击删除按键,可以删除选中的人,或者取消搜索状态。

  2. 技术要点
    这里,最主要的难点就是监听键盘删除键的点击事件。不管你用的是UITextView还是UITextField,当它们本身没有内容的时候点击删除按键,其实delegate是没有任何响应的,这里就需要我们用其它的办法监听到点击事件。

  3. 实现过程
    查看API我们不难发现,其实系统是有事件抛出来的:

        ```@protocol UIKeyInput <UITextInputTraits>- (BOOL)hasText;- (void)insertText:(NSString *)text;- (void)deleteBackward;@end```
    

    所以,我们现在要做的就是实现这个协议,拿到deleteBackward的回调。
    不过这个协议已经被UITextField实现了:

        NS_CLASS_AVAILABLE_IOS(2_0) @interface UITextField : UIControl <UITextInput, NSCoding> 
    

    但是UITextFieldDelegate并没有抛出来。
    所以,我们要做的就是从UITextField里面抛出这个协议。
    自定义一个类,继承UITextField
    自定义的KeyInputTextField
    .m文件里的实现

    到此,我们已经能知道键盘的删除事件了,后面需要做什么逻辑,直接在deleteBackward回调里做就OK!


http://www.ppmy.cn/news/794295.html

相关文章

Android软键盘删除键触发Activity的返回事件

转载请标注&#xff1a; 披萨大叔的博客&#xff1a;http://blog.csdn.net/qq_27258799/article/details/51496102 今天突然发现一个bug&#xff0c;自己的EditText在删除内容时&#xff0c;总会触发Activity的返回事件&#xff0c;可是昨天明明是好好的。于是调试一番才突然醒…

android移除点击监听器,Android - 监听软键盘删除事件

我们项目要做一个类似微博头条文章的图文混排编辑器,在考虑了各种实现方案后,最终定下来的做法就是把每段文字当做一个EditText,每个图片当做一个ImageView,文字和图片放在LinearLayout里。当EditText内容是空的时候,如果用户在软键盘里按删除按钮,要把这个EditText删掉,…

android webview软键盘监听删除键、回车键、其他键

android webview软键盘监听删除键、回车键、其他键 终于有时间来写文章了&#xff0c;头一回发表&#xff0c;文章连贯性可能无法保障&#xff0c;大家勉强看一下吧 今天说点关于android 和 webview 沟通的时候&#xff0c;需要监听软键盘的按键事件的问题 情境描述&#xf…

监听软键盘中的删除键

最近因为项目需要&#xff0c;要监听软键盘中的删除键&#xff0c;在网上搜了大部分的说法&#xff0c;用onKeyListener&#xff0c;但是不知道为什么&#xff0c;设置后并没有效果&#xff0c;最后自己通过dispatchKeyEvent实现了&#xff0c;代码如下 Overridepublic boolean…

JS监听安卓软键盘删除键

web前端开发去整移动端页面真实老折磨了 input反正不论是什么dom肯定都能触发的&#xff0c;那就在input的回调里面看输入类型 这次需求要做光标定位&#xff0c;得上selection和range那一套所以用的是div&#xff0c;但是input也是OK的 然后这个东西好就好在IOS也是兼容的 &…

无源光网络(PON)介绍及其应用

文章目录 1、无源光网络&#xff08;PON&#xff09;介绍ONU&#xff08;Optical Network Unit&#xff09;&#xff0c;光网络单元OLT&#xff08;Optical line terminal&#xff09;&#xff0c;光线路终端 2、FTTH、FTTB、FTTR组网介绍FTTR组网规划 3、局端接入设备产品介绍…

Todo-List案例版本二

(160条消息) Todo-List案例版本一_bubbleJessica的博客-CSDN博客 引入了localStorage&#xff0c;让案例更加完善 src/App.vue <template><div id"root"><div class"todo-container"><div class"todo-wrap"><MyHe…

FPGA纯verilog实现UDP协议栈,GMII接口驱动88E1111,提供工程源码和技术支持

目录 1、前言2、我这里已有的UDP方案3、该UDP协议栈性能4、详细设计方案网络PHYGMII AXIS接口模块AXIS FIFOUDP协议栈 5、vivado工程1-->B50610 工程6、上板调试验证并演示准备工作查看ARPUDP数据回环测试 7、福利&#xff1a;工程代码的获取 1、前言 目前网上的fpga实现ud…