实时监控textfield的 输入内容

 

核心思想:不使用代理方法,使用点击事件,并屏蔽掉正在输入的拼音。

 

之前想用UITextField 的代理方法:shouldChangeCharactersInRange;

问题是:在输入的文字还没有改变前就调用了,比如输入 "tongzhi",输入框中是“tongzhi”,但获取到的是“tongzh”

 

 

[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. [self.inputField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];  
  2.     



 

 

[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
    1. - (void) textFieldDidChange:(UITextField *)sender {  
    2.       
    3.     NSLog(@"textChangeAction : %@",sender.text);  
    4.       
    5.     //防止输入拼音状态时查询  
    6.     NSString *str = [sender textInRange:sender.markedTextRange];  
    7.     NSLog(@"textChangeAction str = %@",str);  
    8.       
    9.     if (![str isEqualToString:@""]) {  
    10.         return;  
    11.     }  
    12.       
    13.     if (_blockSearchFieldDidChange) {  
    14.         _blockSearchFieldDidChange(sender.text);  
    15.     }  
    16. }  

posted on 2016-12-07 10:54  举个例子yi聪聪  阅读(504)  评论(0编辑  收藏  举报

导航