UITextField 只允许输入数字和字母 解决联想中文等问题

隐身守侯 提交于 2019-12-07 14:52:36

- (void)reTextFieldDidChange:(UITextField *)textField{//输入文本时调用

    //将输入的小写x转换成大写

    textField.text = [textField.text stringByReplacingOccurrencesOfString:@"x" withString:@"X"];

    //解决联想输入的问题

    NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:@"Xx0123456789"] invertedSet];//里面放允许输入的字符

   textField.text = [[textField.text componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];

    if (textField.text.length > 18) {

        textField.text = [textField.text substringToIndex:18];

    }

}

 

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

    //设置只能输入字母数字  和 文本框最大长度

    NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:@"Xx0123456789"] invertedSet];

    NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];

    return [string isEqualToString:filtered] && (textField.text.length - range.length + string.length) <= 18;

}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!