UITextField字数限制输入(手机号身份号位数限制)

做项目的时候,使用UITextField的时候,需求是需要输入18位的身份证号,不能多输入。经过一顿操作,结果发现并不是那么麻烦,只要在UITextFieldDelegate的代理方法中添加range.location的判断即可。具体的操作如下,tag值是用来判断是哪个textField的,可以无视。
根据需求,代码如下:

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if (textField.tag == 1000) {
        //控制字数限制在18位,多余位数无法输入
        if (range.location >= 18)
        {
            if ([string isEqualToString:@"\n"])
            {
                [textField resignFirstResponder];
                return NO;
            }
             return NO;
        }
    }
    if ([string isEqualToString:@"\n"])
    {
        [textField resignFirstResponder];
        return NO;
    }
    return YES;
}

代码截图如下:


824943E1-AA48-4B7A-AAC5-F9B4C27C83F6.png

推荐阅读更多精彩内容