参见英文答案 >
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);
- }