请你告诉我为什么我的 NSNumberFormatter 只让我使用 4 位数字(即 2,222 英镑)而不是无限位数字?
- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString *input = [textField.text stringByAppendingString:string];
[textField setText:[self numberFormattedString:input]];
return NO;
}
- (NSString *) numberFormattedString:(NSString *)str {
str = [str stringByReplacingOccurrencesOfString:@"£" withString:@""];
NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init] autorelease];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en-UK"];
[formatter setLocale:locale];
[locale release];
[formatter setMaximumFractionDigits:3];
[formatter setMinimumFractionDigits:0];
return [formatter stringFromNumber:[NSNumber numberWithFloat:[str floatValue]]];
}
编辑 -
当我键入第五个数字时,在 UITextField 中已经有 4 个数字,textField 的文本被重置回单独键入的第五个数字。
例如
我在 UITextField 中输入 1000,然后再输入一个数字 5。由于 5 是第五个数字,因此 UITextField 的文本仅重置为第五个数字。UITextField 现在显示“5”。
TIA。
XcodeDev