У меня есть UITextField в моем приложении iOS, где я уже изменяю вход пользователя. Теперь я понимаю, что мне нужно также убедиться, что UITextField может содержать определенное количество символов. Я реализую метод делегата следующим образом:Пытается ограничить количество символов UITextField в iOS
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if([[string stringByTrimmingCharactersInSet:[NSCharacterSet controlCharacterSet]]
isEqualToString:@""])
return YES;
NSString *previousValue = [[[textField.text stringByTrimmingCharactersInSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]] stringByReplacingOccurrencesOfString:@"." withString:@""] stringByReplacingOccurrencesOfString:@"," withString:@""];
string = [string stringByTrimmingCharactersInSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]];
NSString *modifiedValue = [NSString stringWithFormat:@"%@%@", previousValue, string];
if ([modifiedValue length] == 1) {
modifiedValue = [NSString stringWithFormat:@"0.0%@", string];
}
else if ([modifiedValue length] == 2) {
modifiedValue = [NSString stringWithFormat:@"0.%@%@", previousValue, string];
}
else if ([modifiedValue length] > 2) {
modifiedValue = [NSString stringWithFormat:@"%@.%@",[modifiedValue substringToIndex: modifiedValue.length-2],[modifiedValue substringFromIndex:modifiedValue.length-2]];
}
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSDecimalNumber *decimal = [NSDecimalNumber decimalNumberWithString:modifiedValue];
modifiedValue = [formatter stringFromNumber:decimal];
[textField setText:modifiedValue];
return NO;
}
Я не уверен, что с моим кодом выше, как фактор ограничения 22 символов. Может ли кто-нибудь увидеть, что мне нужно делать?
вы хотите ввести данные Шифрование до 22 символов в текстовое поле справа? – Balu
Возможный дубликат [Установить максимальную длину символа UITextField] (http://stackoverflow.com/questions/433337/set-the-maximum-character-length-of-a-uitextfield) – Larme