iOS监听UITextView、UITextField键盘删除键

最近在做一个键盘判处功能,当输入框内容清空了之后,我们想要再获取删除事件,就比较麻烦了,UITextField并没有删除的代理或者target事件。

一、分析UITextField

UITextField里面用的其实是UIKeyInput,先看UIKeyInput.h

@protocol UIKeyInput <UITextInputTraits>

- (BOOL)hasText;
- (void)insertText:(NSString *)text;
- (void)deleteBackward;   // 删除方法
@end

二、解决办法

所以,我们只需要继承一个UITextField,然后重写deleteBackward方法就可以了。

头文件

#import <UIKit/UIKit.h>

@class WDTextField;

@protocol WDTextFieldDelegate <NSObject>
- (void)wd_textFieldDeleteBackward:(WDTextField *)textField;
@end

@interface WDTextField : UITextField
@property (nonatomic, assign) id <WDTextFieldDelegate> wd_delegate;

@end

实现文件

@implementation WDTextField

- (void)deleteBackward {
    [super deleteBackward];
    
    if ([self.wd_delegate respondsToSelector:@selector(wd_textFieldDeleteBackward:)]) {
        [self.wd_delegate wd_textFieldDeleteBackward:self];
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容