標籤:
聲明屬性
@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);}
ios 文字框變化 監聽的3種方式