动态限制UITextField的输入位数


在用手机号登陆的时候大家有没有遇到这个问题? 就是一边想要输入到一定位数要限制输入,但是删除的时候还要能删除,

相信大家都知道,输入框是用 UITextField的吧,其他的都不说了,要用textField的话实现代理方法,最重要的一点是设置他的键盘模式为数字键盘

txtField.keyboardType=UIKeyboardTypeNumberPad;

然后实现代理方法txtField.delegate = self;实现代理协议

相信大家都知道他的代理方法其中有一个是每次改变就会调用

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

    if ([string isEqualToString:@""]) return YES;

        if (textField.tag == TEXTFIELD_EMAIL_TAG && textField.text.length >= 11) {

        // 手机号

        return NO;

    }else if (textField.tag == TEXTFIELD_PASSWD_TAG && textField.text.length >= 6){

        // 密码

        return NO;

    }else{

        return YES;

    }

}

文中标红色的是关键点,经过小编好长时间的纠结和观察,突然发现当点击删除键的时候返回的string竟然是@"",就是抓住这一点就把问题解决了,既能限制位数,也能实现删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值