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;

}

相關文章
相關標籤/搜索