代理
textField.delegate = self
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSLog(@"textField - 正在编辑, 当前输入框内容为: %@",textField.text);
return YES;
}
添加Target 事件
[self.textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];`
-(void)textFieldDidChange:(UITextField *)textField{
}
使用 NSNotificationCenter 添加监听
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldValueChange:) name:UITextFieldTextDidChangeNotification object:nil];
-(void)textField2TextChange:(NSNotification *)noti{
UITextField *currentTextField = (UITextField *)noti.object;
NSLog(@"textField - 输入框内容改变,当前内容为: %@",currentTextField.text);
}
使用 KVO 添加监听
[self.textField addObserver:self forKeyPath:@"text" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context{
if ([keyPath isEqualToString:@"text"] && object == self.textField) {
NSLog(@"textField - 输入框内容改变,当前内容为: %@",self.textField.text);
}else{
[super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
}
}