实时监控textfield的 输入内容
核心思想:不使用代理方法,使用点击事件,并屏蔽掉正在输入的拼音。
之前想用UITextField 的代理方法:shouldChangeCharactersInRange;
问题是:在输入的文字还没有改变前就调用了,比如输入 "tongzhi",输入框中是“tongzhi”,但获取到的是“tongzh”
- [self.inputField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
- - (void) textFieldDidChange:(UITextField *)sender {
- NSLog(@"textChangeAction : %@",sender.text);
- //防止输入拼音状态时查询
- NSString *str = [sender textInRange:sender.markedTextRange];
- NSLog(@"textChangeAction str = %@",str);
- if (![str isEqualToString:@""]) {
- return;
- }
- if (_blockSearchFieldDidChange) {
- _blockSearchFieldDidChange(sender.text);
- }
- }