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

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

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

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

    //解决联想输入的问题get

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

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

    if (textField.text.length > 18) {class

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

    }co

}字符

 

- (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;

}

相关文章
相关标签/搜索