事件监听的三种方法

事件监听的三种方法:
addTarget --用于监听一些点击、值改变等事件
代理       -- 监听一些开始、结束、选中某行等一些改变控制属性的一些事件
通知:上面都不行考虑使用通知
通知使用注意:只要监听通知就要移除通知,不然控制器销毁后,通知发送时就会找不到对象致使程序崩溃
文本框事件的监听:
textfied代理只能监听开始编辑结束编辑,可否改变文字,不能监听改变文字后的状况,本项目须要
监听文本框中是否有输入,代理和addTarget都不适用。
文本框发出的三个通知:
UIKIT_EXTERN NSString *const UITextFieldTextDidBeginEditingNotification;
UIKIT_EXTERN NSString *const UITextFieldTextDidEndEditingNotification;
UIKIT_EXTERN NSString *const UITextFieldTextDidChangeNotification;
 
登陆界面:
1. 登陆按钮只有文本框都有文字才能点击
实现思路:文本框一改变就会发送通知名为UITextFieldTextDidChangeNotification的通知。故使用这个通知监听两个文本框内是否有内容。都有内容则控制登录按钮的使能状态
代码:HGLoginViewController.m
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    /* 设置文本框一些属性 */
    // 占位符
    self.countField.placeholder = @"请输入帐户";
    // 清空按钮
    self.countField.clearButtonMode = UITextFieldViewModeWhileEditing;

    self.pwdField.placeholder = @"请输入密码";
    // 密文显示
    self.pwdField.secureTextEntry = YES;
    self.pwdField.clearButtonMode = UITextFieldViewModeWhileEditing;
   
    /* 登录按钮禁用 */
    self.loginBtn.enabled = NO;
   
    // 向系统通知中心注册监听通知的事件
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldChange) name:@"UITextFieldTextDidChangeNotification" object:self.countField];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldChange) name:@"UITextFieldTextDidChangeNotification" object:self.pwdField];
   
}
相关文章
相关标签/搜索