最近在做一個鍵盤判處功能盆昙,當輸入框內(nèi)容清空了之后,我們想要再獲取刪除事件焊虏,就比較麻煩了淡喜,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
實現(xiàn)文件
@implementation WDTextField
- (void)deleteBackward {
[super deleteBackward];
if ([self.wd_delegate respondsToSelector:@selector(wd_textFieldDeleteBackward:)]) {
[self.wd_delegate wd_textFieldDeleteBackward:self];
}
}