0

我正在尝试构建一个基本的计算器,但在输入过程中无法格式化显示屏上的数字。我使用 NSNumberFormatter 在每 3 位数字后加一个逗号,这样“99999”就可以看起来像“99,999”。

问题是它在输入过程中不会显示超过 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;
}
4

1 回答 1

0

这些方法可能会派上用场:

- (void)setMaximumIntegerDigits:(NSUInteger)number;
- (void)setMaximumFractionDigits:(NSUInteger)number;

您可以将最大小数位数设置为 6,或者您需要的任何值:

[numberFormatter setMaximumFractionDigits: 6];
于 2013-03-27T10:16:47.783 回答