标签:
声明属性
@interface LoginControler() <UITextFieldDelegate> @property (weak, nonatomic) IBOutlet UITextField *userName; @end
1,代理方式
-(void) viewDidLoad
{
_userName.delegate = self; //添加代理
}
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSLog(@"%@", textField.text);
return true; //如果NO就不会显示
}
2,通知
这种方式在通知完后还需要释放,麻烦,用的少
-(void) viewDidLoad
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChange) name:UITextFieldTextDidChangeNotification object:nil];
//addObserver:self 监听者对象
//name 监听的改变对象的方法
//object 监听的对象 nil 全部监听
}
-(void)textChange
{
NSLog(@"%@", _userName.text);
}
-(void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self]; //移除监听
}
3,动态添加执行方法
-(void) viewDidLoad
{
[_userName addTarget:self action:@selector(textChange) forControlEvents:UIControlEventEditingChanged];
//forControlEvents 触发事件
}
-(void)textChange
{
NSLog(@"%@", _userName.text);
}
标签:
原文地址:http://my.oschina.net/u/274829/blog/519079