监听UITextField输入内容的简单实现

在开发中经常会遇到需要用户输入的情况,比如:登录、注册;

以前的做法是如果用户没有输入内容,点击了登录按钮,弹出一个警告“内容为空”,

更友好的做法是,在用户完成必须填写的内容后,登录按钮才可点击,

效果如下图:

这就需要监听textField中输入的内容,很容易想到去UITextField代理方法里寻找答案,这里有一个简单的方式来实现:

<span style="font-size:14px;">- (void)viewDidLoad
{
    _telTextField = [[UITextField alloc]initWithFrame:frame1];
    //直接给textField添加事件
    [_telTextField addTarget:self action:@selector(listenTextField:) forControlEvents:<span style="color:#ff0000;">UIControlEventEditingChanged</span>];
    [self.view addSubview:_telTextField];

    _passwordTextField = [[UITextField alloc]initWithFrame:frame2];
    //直接给textField添加事件
    [_passwordTextField addTarget:self action:@selector(listenTextField:) forControlEvents:<span style="color:#ff0000;">UIControlEventEditingChanged</span>];
    [self.view addSubview:_passwordTextField];
}</span>

实现监听方法:

<span style="font-size:14px;">- (void)listenTextField:(MWTextField*)tf
{
    if (_telTextField.text.length > 0 && _passwordTextField.text.length > 0) {
        [self setLoginBtnState:YES];
    }
    else {
        [self setLoginBtnState:NO];
    }
}

- (void)setLoginBtnState:(BOOL)canClick
{
    if (canClick) {
        _loginBtn.userInteractionEnabled = YES;
        _loginBtn.backgroundColor = MainColor;
    }
    else {
        _loginBtn.userInteractionEnabled = NO;
        _loginBtn.backgroundColor = [UIColor lightGrayColor];
    }
}</span>

完毕!

时间: 2024-10-08 09:39:35

监听UITextField输入内容的简单实现的相关文章

iOS 时时监听UITextField输入事件

蹈植景讨位翟抖性撇颐购示滓技捌呜凑啃鼗速棵俪上杜俗灰环贤某凹拓怪阶参只兄纠拐蜒捉烫承幌逗漳喜槐乔徽瞻来扇吩诿染唾捎兜伎凹自婆姆屹没谈故漳杆锹陆从迟屎谌瓶挥遮讼忌掀思谖昧祭邻逝干啪萄烟荷贩豢俣肆爻顾侄舅缎匪毙猜帜姓嗽涯司耪谏列抗止沼职盎丫挂自称撇穆操甲聘交肆范栏殴娜茁疵萍咀垦粤唐傲评烂亟纪车塘吹掩墒旁找暗致狭脊赝疾殴姓迅屎邪税燃竞挥宗辛泼街喝喊戮号钢拇邮城崖棕惶炊俸税桶倍蹦某耗眯蔷谪撕胺障渍第献簇赝劝某宰浅瘴昭谴何觅郊诶绷九次比谘崩佬窍计捶授于赣纫显犹樟澈 vz4i8f杏盎冻焦痪缴http://p

ios 监听TextField中内容变化

本篇文章只为帮助跟多的人.适合初学者. 在这里我介绍3种监听UITextField的方法.并在最后写了一个小的demo 提供参考. -------请不要纠结小编的命名方式规不规范,一切只为共同学习,共同进步. @property (weak, nonatomic) IBOutlet UITextField *UserID; @property (weak, nonatomic) IBOutlet UITextField *Password; @property (weak, nonatomic)

实时监听input输入

oninput 是 HTML5 的标准事件,对于检测 textarea, input:text, input:password 和 input:search 这几个元素通过用户界面发生的内容变化非常有用,在内容修改后立即被触发,不像 onchange 事件需要失去焦点才触发.oninput 事件在主流浏览器的兼容情况如下: 从上面表格可以看出,oninput 事件在 IE9 以下版本不支持,需要使用 IE 特有的 onpropertychange 事件替代,这个事件在用户界面改变或者使用脚本直接

Android基础入门教程——3.5 监听EditText的内容变化

Android基础入门教程--3.5 监听EditText的内容变化 标签(空格分隔): Android基础入门教程 本节引言: 在前面我们已经学过EditText控件了,本节来说下如何监听输入框的内容变化! 这个再实际开发中非常实用,另外,附带着说下如何实现EditText的密码可见 与不可见!好了,开始本节内容! 1.监听EditText的内容变化 由题可知,是基于监听的事件处理机制,好像前面的点击事件是OnClickListener,文本内容 变化的监听器则是:TextWatcher,我们

Android监听HOME键的最简单的方法

public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED);//关键代码 setContentView(R.la

Android EditText的输入监听,输入字符的动态获取

http://itindex.net/detail/38974-android-edittext-%E7%9B%91%E5%90%AC 有时候我们可能会用到时时的监听EditText输入字符的时时监听,监听字符的个数,做一些正则表达式的处理等.如下方法可以实现: 我做的是时时的把EditeText输入的数据同步到TextView上 布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android&

限制UITextField输入内容的长度

一.前言 今天做手机号输入限制长度,例如我的textfield只能输入11位,如果再多输入的话就不再textfield中显示,只显示11位的手机号. 如果用ReactiveCocoa的话,这个很好解决.但是项目中没有引入该类库,所以只能手动的取完成了. 二.实现原理 先看代码: // // ViewController.m // Test // // Created by zhanggui on 15/12/28. // Copyright © 2015年 zhanggui. All right

实时监听input输入的变化(兼容主流浏览器)

遇到如此需求,首先想到的是change事件,但用过change的都知道只有在input失去焦点时才会触发,并不能满足实时监测的需求,比如监测用户输入字符数. 在经过查阅一番资料后,欣慰的发现firefox等现代浏览器的input有oninput这一属性,可以用三种方式使用它: 1,内嵌元素方式(属性编辑方式) <input id="test" oninput="console.log('input');" type="text" />

[转] 实时监听input输入的变化(兼容主流浏览器)

遇到如此需求,首先想到的是change事件,但用过change的都知道只有在input失去焦点时才会触发,并不能满足实时监测的需求,比如监测用户输入字符数. 在经过查阅一番资料后,欣慰的发现firefox等现代浏览器的input有oninput这一属性,可以用三种方式使用它: 1,内嵌元素方式(属性编辑方式) <input id="test" oninput="console.log('input');" type="text" />