zoukankan      html  css  js  c++  java
  • UITextFieldDelegate协议

    很多人都认为UITextField很简单,为什么会写这个协议呢?

    因为在实际开发中可能会用到;

    比如要做到下图的效果:

    文本框下面的下划线的颜色要随着输入的状态变化;

    点击对应的文本框,其下面的线条变为绿色,结束编辑,变为灰色;

    要熟悉UITextFieldDelegate协议才能做到这一点;

    首先,先看一下官方的说明:

    复制代码
    - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;        // return NO to disallow editing.
    - (void)textFieldDidBeginEditing:(UITextField *)textField;           // became first responder
    - (BOOL)textFieldShouldEndEditing:(UITextField *)textField;          // return YES to allow editing to stop and to resign first responder status. NO to disallow the editing session to end
    - (void)textFieldDidEndEditing:(UITextField *)textField;             // may be called if forced even if shouldEndEditing returns NO (e.g. view removed from window) or endEditing:YES called
    
    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;   // return NO to not change text
    
    - (BOOL)textFieldShouldClear:(UITextField *)textField;               // called when clear button pressed. return NO to ignore (no notifications)
    - (BOOL)textFieldShouldReturn:(UITextField *)textField;              // called when 'return' key pressed. return NO to ignore.
    复制代码

    1、

    - (void)textFieldDidBeginEditing:(UITextField *)textField;

    文本框已经开始编辑

    2、

    - (void)textFieldDidEndEditing:(UITextField *)textField; 

    文本框已经结束编辑

    3、其他设置是否允许的输入控制

    复制代码
    1、- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;        // return NO to disallow editing.
    //控制是否允许输入,返回值是NO的时候,禁止输入;

    2、- (BOOL)textFieldShouldEndEditing:(UITextField *)textField; // return YES to allow editing to stop and to resign first responder status. NO to disallow the editing session to end //是否结束输入,返回值是YES时候,允许停止输入,并且释放第一响应;返回NO的时候,则相反; 3、- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; // return NO to not change text
    //是否改变输入文本,返回NO的时候,不保存修改
    4、- (BOOL)textFieldShouldClear:(UITextField *)textField; // called when clear button pressed. return NO to ignore (no notifications)
    //当清空按钮时候调用,返回是NO的时候,忽视清空
    5、- (BOOL)textFieldShouldReturn:(UITextField *)textField; // called when 'return' key pressed. return NO to ignore.
       //当点击return按钮时候调用该方法,返回是NO的时候,不做任何响应;
    
    
    复制代码
  • 相关阅读:
    python学习之路---day20--面向对象--多继承和super() 函数
    python学习之路---day19--面向对象--约束
    python学习之路---day18--反射
    day017-------python 类与类的关系
    迅为iTOP-4418嵌入式开发板初体验
    迅为4418开发板Qt移植移动4G模块第二部分
    迅为7寸工业平板电脑|人机界面|工业触摸屏|工控机|HMI|工业显示器
    [转载]迅为4418开发板Qt移植移动4G模块第一部分
    4412开发板共享海量学习资料 学不会才是奇迹
    【转载】自制4412底板自动进入SD卡更新模块
  • 原文地址:https://www.cnblogs.com/zhangyubao/p/6994410.html
Copyright © 2011-2022 走看看