Ios---输入框的字符限制

吴江之畔、何不是项王,战他个荡气回肠。

目前对于App来说,交易密码、登陆密码、等输入框情形都需要限制输入的字符个数。运用输入框属性我们来做一个数字限制(单独数字使用)和文字限制(文字数字双份使用,文字限制内部分包含直接对数字情况下的直接限制),不然把数字的运用到文字限制上就会出现差错。

#pragma mark -- 设定可输入12位数
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
    
    NSInteger maxNumber = 12;//字数 放空为全局属性
        NSString * IndexString = [textField.text stringByReplacingCharactersInRange:range withString:string];
        if (IndexString.length > maxNumber && range.length!=1){
            textField.text = [IndexString substringToIndex: maxNumber];  
            return NO;   
        }
    return YES;

文字限制

#pragma mark -- 限制输入字数
- (void)textFieldDidChange:(UITextField *)textField
{
    //最大长度
    NSInteger maxNumber = 12;

    NSString *IndexString = textField.text;

    NSString *lang = [[UIApplication sharedApplication]textInputMode].primaryLanguage;
//zh-Hans 为简体中文键盘 判断字符就会一直走到简体中文类型下 判断字符需要更换键盘类型
    if ([lang isEqualToString:@"zh-Hans"]) {
        //中文输入
        UITextRange *selectedRange = [textField markedTextRange];
        //获取高亮
        UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
        if (!position) {// 没
            if (IndexString.length > maxNumber) {
                textField.text = [IndexString substringToIndex:maxNumber];
                [textField resignFirstResponder];
            }
        } else {
//有
        }
    } else {//中文以外的直接限制
        if (IndexString.length > maxNumber) {
            textField.text = [IndexString substringToIndex:maxNumber];
        }
    }
}

你可能感兴趣的:(Ios---输入框的字符限制)