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

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

iOS监听键盘的删除按键事件相关推荐

  1. ios监听键盘删除事件

    文章来自于我的简书:原文在这里 监听键盘删除按钮的事件,常规做法是使用UITextField的textField:shouldChangeCharactersInRange:replacementSt ...

  2. js实现监听键盘的收起和弹出

    之前遇到一个bug,前提因素: 1. vue项目 2. 弹出层popup 3. ios手机 4. 弹出层中的input获取焦点后 点击键盘上的"完成"按钮收起键盘,再次触发inpu ...

  3. iOS一个方法实现监听键盘弹出、变化、收起事件

    首先,自然是先监听键盘变化事件UIKeyboardWillChangeFrameNotification,代码如下: //使用NSNotificationCenter [[NSNotification ...

  4. vue 监听键盘回车事件 @keyup.enter || @keyup.enter.native

    vue运行为v-on在监听键盘事件时,添加了特殊的键盘修饰符: <input v-on:keyup.13="submit"> vue还非常贴心地给出了常用按键的别名,这 ...

  5. Vue中监听键盘事件

    Vue中监听键盘事件 在一些搜索框中,我们往往需要监听键盘的按下(onkeydown)或抬起(onkeyup)事件以进行一些操作.在原生js或者jQuery中,我们需要判断e.keyCode的值来获取 ...

  6. 如何在ArcMap中监听键盘鼠标事件

    昨天有个朋友想要实现一个功能,就是在ArcMap中编辑数据的时候,能够通过快捷键自动设置预定义的属性,比如,选中若干要素,按A键,就自动填充属性,按B键,则又自动填充另外的属性字段. 单就这个功能而言 ...

  7. javascript监听键盘事件 - 如表单enter回车提交

    javascript监听键盘点击时间,比如:enter回车表单提交.禁止F5刷新.禁用鼠标右键等等 本文仅简单做个介绍,权当抛砖引玉了:如果朋友们有更好的建议或者意见,欢迎留言评论. 代码如下: &l ...

  8. ExtJS监听键盘事件:回车键实现登录功能

    ExtJS为我们封装了完整的键盘监听事件,我们只要调用相应的接口就能完美的实现键盘监听.在所有的键盘事件中,按回车键提交表单,实现登 录的功能是我们最常用到的键盘监听事件,下面李坏给出一个实现回车键提 ...

  9. html键盘事件监听,react怎样监听键盘事件

    react监听键盘事件的方法:React中有监听键盘按下事件onKeyUp或者onKeyDown属性(以下用onKeyUp),值为自定义方法keyUp,即onKeyUp={this.keyUp}. 通 ...

  10. Vue中监听键盘事件及自定义键盘事件

    在一些搜索框中,我们往往需要监听键盘的按下(onkeydown)或抬起(onkeyup)事件以进行一些操作.在原生js或者jQuery中,我们需要判断e.keyCode的值来获取用户所按的键.这样就存 ...

最新文章

  1. 从qspi启动linux时间,Zynq-Linux移植学习笔记(二十三)——QSPI速度配置
  2. 如何用简单易懂的例子解释隐马尔可夫模型?
  3. 第十七届全国大学智能车竞赛赛区划分
  4. 初探swift语言的学习笔记九(OC与Swift混编)
  5. C++smallest circle 获取外接给定点集的最小圆的中心和半径算法(附完整源码)
  6. java long.max_value,Long + Long不大于Long.MAX_VALUE
  7. 代码证年检所需资料_上海注销小规模公司所需材料及流程
  8. 调试阶段 获取微信小程序openid
  9. 关于”要执行请求的操作,WordPress需要访问您网页服务器的权限”
  10. 嵌入式Linux/Android疑难杂症工作笔记
  11. Java项目—在线考试系统
  12. Pascal 转 C++ 教程2
  13. Word文档中标题前面的黑点如何去掉
  14. dropbox 、tombstones、debuggred
  15. vue 使用高德地图 api
  16. 全面比较Aptos和Sui:Aptos已上线 来看看Sui
  17. VUE3-Cesium(视角操作、时钟设置)
  18. 白鹭引擎egret打包成微信小游戏
  19. 用python画漂亮的图案-使用 Python Turtle 设计简单而又美丽的图形
  20. XAMPP 的安装配置

热门文章

  1. 脚本重启电信天翼网关
  2. vue 刮刮乐抽奖H5项目
  3. 基于基因组数据的癌症亚型发现聚类研究
  4. wh计算公式_功率计算公式
  5. snmp中的MIB主要节点含义
  6. 计算机搜不到连接打印机主机,电脑搜索不到局域网打印机怎么办
  7. 计算机标题怎么操作,电脑的ppt 一级,二级,三级标题怎么设置
  8. 静心的全部秘密:你是观照者
  9. 《你不知道的JavaScript》学习佛系梳理
  10. 12306 终于随随便便撑起洪峰流量了,全面拥抱Redis 6.x!