0

我的应用程序中有两个 UITextField,该应用程序与货币有关。我正在尝试用 $ ​​开头和它应该的小数点正确格式化它。就像我说的。我一直无法找到我的问题的菜鸟答案。

4

3 回答 3

0

这里发生的事情是您添加了一个观察者,它告诉我们用户何时完成编辑。一旦发生这种情况,我们的formatCurrency方法就会更新文本字段的外观。一旦数字字段退出其第一响应者状态,更改将完全生效。

- (void)viewDidLoad
{
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(formatCurrency)
                                             name:UITextFieldTextDidEndEditingNotification
                                               object:self.numberField];
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    [self.numberField resignFirstResponder];
}

-(void)formatCurrency {
    NSString *currentValue = self.numberField.text;
    long long cur = [currentValue longLongValue];
    NSNumber *curNum = @(cur);
    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
    [formatter setNumberStyle:NSNumberFormatterCurrencyStyle];

    self.numberField.text = [NSNumberFormatter localizedStringFromNumber:curNum
                                          numberStyle:NSNumberFormatterCurrencyStyle];
}
于 2013-08-15T04:59:08.580 回答
0
UILabel *price; 
NSString *dollarSign = "$";//Just use whatever currency symbol you need


price.text = [dollarSign stringByAppendingString:[NSString stringWithFormat:@"%.2f", priceVariable]];

这将以 $xxx.xx 格式打印

于 2013-08-15T04:59:47.070 回答
0

我写了一个UITextField子类来处理货币格式,可以在这里找到:

https://github.com/TomSwift/TSCurrencyTextField

它将货币金额格式化为用户类型的 ATM 样式。用户被限制输入除数字以外的任何内容。该控件在内部使用 NSNumberFormatter(货币样式!),您可以根据需要对其进行调整,以调整货币符号 ($)、小数位等。

于 2013-10-31T17:36:15.503 回答