参见英文答案 >
Set the maximum character length of a UITextField42个
我有一个UITextField具有以下限制 – 字符只能是数字,如下面的方法.我还想将最大字符数限制为3位数.如何修改我的方法来做到这一点?
我有一个UITextField具有以下限制 – 字符只能是数字,如下面的方法.我还想将最大字符数限制为3位数.如何修改我的方法来做到这一点?
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSCharacterSet *aCharacterSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"]; for (int i = 0; i < [string length]; i++) { unichar aCharacter = [string characterAtIndex:i]; if ([aCharacterSet characterIsMember:aCharacter]) { return YES; } } NSUInteger newLength = self.textField.text.length + string.length - range.length; return (newLength > 3) ? NO : YES; }
解决方法
o限制代码下方的文本字段使用.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string]; return !([newString length] > 3); }