Я пытаюсь создать базовый калькулятор, и у меня возникли проблемы с форматированием номера на дисплее во время ввода. Я использую NSNumberFormatter, чтобы поместить запятую после каждых трех цифр, чтобы «99999» мог выглядеть примерно как «99,999».NSNumberFormatter, не позволяющий более 4-х цифр в UITextField
Проблема в том, что во время ввода не будет отображаться более 4 цифр ... она в основном сбрасывается до 1 цифры. Вот мой код для ввода цифры:
- (IBAction)digitPressed: (UIButton *)sender
{
NSString *digit = sender.titleLabel.text;
display.text = [display.text stringByAppendingString:digit];
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setGroupingSeparator:@","];
[numberFormatter setGroupingSize:3];
[numberFormatter setUsesGroupingSeparator:YES];
[numberFormatter setDecimalSeparator:@"."];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSString *theString = [numberFormatter stringFromNumber:[NSNumber numberWithDouble:[[display text] doubleValue]]];
display.text = theString;
}
Может ли ваш код обрабатывать, когда пользователь пытается ввести нуль после десятичной точки? Почему вы игнорируете локализацию и устанавливаете разделитель десятичных чисел и разделитель группировки таким образом? – Sulthan