小积累,用的时候直接copy就可以了,上代码。
Swift 版:
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
//限制只能输入数字,不能输入特殊字符
let length = string.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)
for loopIndex in 0..<length {
let char = (string as NSString).characterAtIndex(loopIndex)
if char < 48 { return false }
if char > 57 { return false }
}
//限制长度
let proposeLength = (textField.text?.lengthOfBytesUsingEncoding(NSUTF8StringEncoding))! - range.length + string.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)
if proposeLength > 11 { return false }
return true
}
OC版:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if (textField == self.usernameTextField){
NSUInteger lengthOfString = string.length;
for (NSInteger loopIndex = 0; loopIndex < lengthOfString; loopIndex++) {//只允许数字输入
unichar character = [string characterAtIndex:loopIndex];
if (character < 48) return NO; // 48 unichar for 0
if (character > 57) return NO; // 57 unichar for 9
}
// Check for total length
NSUInteger proposedNewLength = textField.text.length - range.length + string.length;
if (proposedNewLength > 11) return NO;//限制长度
return YES;
}else{
NSUInteger proposedNewLength = textField.text.length - range.length + string.length;
if ( proposedNewLength > 20) return NO;//限制长度
return YES;
}
}