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

  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里面抛出这个协议。
    自定义一个类,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值