需求场景描述
最近项目里有个场景,搜索添加成员的时候,需要类似于微信创建讨论组加人时的效果:启动搜索输入文本,点击删除文本,当文本全删除完的时候,在点击删除按键,可以删除选中的人,或者取消搜索状态。技术要点
这里,最主要的难点就是监听键盘删除键的点击事件。不管你用的是UITextView还是UITextField,当它们本身没有内容的时候点击删除按键,其实delegate是没有任何响应的,这里就需要我们用其它的办法监听到点击事件。实现过程
查看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监听键盘的删除按键事件
最新推荐文章于 2021-06-01 10:55:44 发布
本文介绍如何在iOS应用中实现监听键盘删除键的功能,以便在文本框为空时进行特殊操作,如删除选中成员或取消搜索状态。
2408

被折叠的 条评论
为什么被折叠?



