监听UITextField改变事件(三种方法)

测试Demo:http://pan.baidu.com/s/1qWQ8rP6

个人觉得第二种比较好

- (void)viewDidLoad {

    // 一 代理监听   
     _textField.delegate = self;    
         
    // 二 添加文本框改变事件    
    [_textField addTarget:self action:@selector(textChange) forControlEvents:
    UIControlEventEditingChanged];       
    
     // 三 添加文本框改变通知    
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(text
     Change) name:UITextFieldTextDidChangeNotification object:nil];      
       
       //addObserver:self 监听者对象    
       //name 监听的改变对象的方法    
       //object 监听的对象 nil 全部监听 单个监听 填自己(_textField)
}

 -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range
  replacementString:(NSString *)string {       
  
   NSLog(@"调用了代理方法");   
   
    return NO;    //如果NO就不会显示文本内容
    
}   

 - (void)textChange {     
 
     NSLog(@"调用了");
}

- (void)dealloc {   
      [[NSNotificationCenter defaultCenter] removeObserver:self]; 
        //移除监听
  }


学自这篇播客:

http://my.oschina.net/u/274829/blog/519079?fromerr=p4OPcYmo


你可能感兴趣的:(监听UITextField改变事件(三种方法))