小胖说事48-----iOS 文本框变化 监听的3种方式

来源:互联网 发布:java培训课程哪家好 编辑:程序博客网 时间:2024/06/06 07:25

声明属性

@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);}

0 0
原创粉丝点击