я пытаюсь настроить UITextField так, чтобы он принимал только 11 номеров, я использую NSNumberFormatter, и он отлично работает с использованием чисел, но когда я пытаюсь установить максимальное имеющиеся номера не работают.
Даже назначение setMaximumFractionDigits, setMaximumIntegerDigits и setMaximumSignificantDigits не работает должным образом, или я что-то упустил? пожалуйста помоги.
вот мой код…
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSNumberFormatter *num = [[NSNumberFormatter alloc] init];
[num setNumberStyle:NSNumberFormatterDecimalStyle];
[num setUsesSignificantDigits:YES];
[num setMaximumFractionDigits:0];
[num setMaximumIntegerDigits:11];
[num setMaximumSignificantDigits:11];
NSString *aString = [textField.text stringByReplacingCharactersInRange:range withString:string];
//[NSString stringWithFormat:@"%@%@", textField.text, string];
NSNumber *number = [num numberFromString:aString];
if (number) {
return YES;
else
return NO;
}
ИЗМЕНИТЬ:
Я переупорядочил код, как сказал Ян, и внес изменения, которые сказал Инк, и все равно я могу писать только числа, но я могу написать более 11 чисел.
ИЗМЕНИТЬ 2
Спасибо Ян и Инк, теперь это работает, мне нужно было проверить, что aString.length меньше 12 и это число.
if (aString.length < 12 && number)
return YES;
else
return NO;
Спасибо за любую помощь!