做项目的时候遇到这样一个小问题,因为需求的缘故我需要动态监听UITextField输入内容的变化,可是在使用苹果官方提供的API发现是可以监听内容的变化,可是不是太准确于是就在网上搜了半天找到了解决方法,在这里和大家分享一下吧!
问题描述:
使用下边方法动态监听UITextField输入内容的变化不准确。
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSLog(@"%@",textField.text);
return YES;
}
解决方案:
直接添加一个事件,不过需要注意控件事件需要填写:UIControlEventEditingChanged
否则无效。
UITextField *testField =[[UITextField alloc]init];
[testField addTarget:self action:@selector(testFieldChangeEvent:) forControlEvents:UIControlEventEditingChanged];
-(void)testFieldChangeEvent:( UITextField*)textField{
NSLog(@"sender->:%@",textField.text);
}
UITextField小知识点
#限制输入UITextField输入内容的长度
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSInteger kMaxLength = 5;//限制的长度
NSInteger strLength = textField.text.length - range.length + string.length;
return (strLength <= kMaxLength );