iOS监听UITextView、UITextField键盘删除键

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

一、分析UITextField

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

@protocol UIKeyInput 

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

二、解决办法

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

头文件

#import 

@class WDTextField;

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

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

@end

实现文件

@implementation WDTextField

- (void)deleteBackward {
    [super deleteBackward];
    
    if ([self.wd_delegate respondsToSelector:@selector(wd_textFieldDeleteBackward:)]) {
        [self.wd_delegate wd_textFieldDeleteBackward:self];
    }
}

你可能感兴趣的:(iOS监听UITextView、UITextField键盘删除键)