如何在UITextField中为每3位数添加逗号?

时间:2016-02-15 10:54:12

标签: ios uitextfield

我试图在文本字段中显示类似1,000,000.99而不是1000000.99的内容,因为用户在文本字段中输入了数字。我已经看过其他问题了,没有一个能真正满足我的需求。码。我现在有以下内容。我正在尝试在我现有的基础上添加新代码。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    int countDots = (int)[textField.text componentsSeparatedByString:(@".")].count-1;
    if (countDots > 0 && [string  isEqual: @"."]) {
        return NO;
    } else if ([textField.text length]>12 && [string length] > range.length) {
                   return NO;
    } else{
        return YES;
    }
}

现在,我的条件检查'仅1个小数'和最大'12位'。我希望能够添加逗号

2 个答案:

答案 0 :(得分:2)

您可以使用

NSNumberFormatter *formatter = [NSNumberFormatter new];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle]; // important line!

NSString *formatted = [formatter stringFromNumber:[NSNumber numberWithInteger:4000000]];

希望有所帮助

答案 1 :(得分:0)

NSNumberFormatter类就是为此而设计的。

你应该能够做到这一点......

NSNumberFormatter *nf = [NSNumberFormatter new];
nf.perMillSymbol = @",";

然后,当你想要你的字符串时,你可以做...

textfield.text = [nf stringFromNumber:@1000000000000.95];