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桁ある5桁目を入力すると、textFieldのテキストは単独で入力された5桁目にリセットされます。
例えば
UITextFieldに1000を入力し、さらに5の数字を入力します。5は5桁目であるため、UITextFieldのテキストは5桁目だけにリセットされます。UITextFieldに「5」が表示されます。
TIA。
XcodeDev