赞
踩
1、手动设置UITextField.text=nil或者@""或者@"任何字符串"都不会触发这个通知,在输入框输入/删除文字、剪切/粘贴输入框文字、输入中文拼音、点击自带的clearButton清空文字时会触发(点击输入键盘上方的待选文字时会触发两次)。
2、可以在设置UITextField.text时,调用NSNotificationCenter的postNotificationName手动发送这个通知。
1、效果和UITextFieldTextDidChangeNotification一样,手动设置UITextField.text时不触发这个事件。
2、可以在设置UITextField.text时,手动调用对应的selector方法,也可以重写-setText:方法。
RCTextField:
[self addTarget:self action:@selector(textDidChange:) forControlEvents:UIControlEventEditingChanged];
- (void)setText:(NSString *)text {
[super setText:text];
[self textDidChange:self];
}
3、即使使用这个UITextField子类(即RCTextField)时再一次调用“[rctextField addTarget:self action:@selector(client_TextDidChange:) forControlEvents:UIControlEventEditingChanged];”,也会同时调用textDidChange和client_TextDidChange。(如果RCTextField的实现代码中设置delegate为self,而使用RCTextField时设置delegate为其他对象obj,则RCTextField的实现代码中的协议方法不会被调用,只会调用obj中实现的协议方法。)
UITextField编辑时或者设置text属性修改文字时,不会触发这个事件。
1、好像手动设置UITextField.text时可以触发这个协议方法,但是iOS13之后才支持。
2、如果在UITextField子类的实现代码中设置delegate为子类本身,而使用这个子类时设置delegate为其他对象obj,则子类的实现代码中的协议方法不会被调用,只会调用obj中实现的协议方法。
不能用来监测文字变化,因为这个方法是在用户编辑文字时用来询问是否可以修改,调用时textField.text是修改之前的文字,手动设置UITextField.text不会触发。
只有手动设置UITextField.text时触发,在输入框输入文字时不触发。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。