码迷,mamicode.com
首页 > 移动开发 > 详细

ios 文本框变化 监听的3种方式

时间:2015-10-20 00:11:02      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:

声明属性

@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种方式

标签:

原文地址:http://my.oschina.net/u/274829/blog/519079

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!