zoukankan      html  css  js  c++  java
  • 事件监听的三种方法

    事件监听的三种方法:
    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];
       
    }
  • 相关阅读:
    配置PyCharm(背景色+字体大小+解释器选择)
    面向对象的三大特性(封装、继承、多态)
    hashlib模块
    logging模块
    Mac OSX系统、Linux、Windows命令行教程
    Python2和Python3的一些语法区别
    python——内置函数和lambda匿名函数
    python——异常处理
    SVN
    实体框架Entity Framework 4.1快速入门
  • 原文地址:https://www.cnblogs.com/jianghg/p/4579612.html
Copyright © 2011-2022 走看看