我的应用程序中有两个UITextFields,该应用程序与货币有关。我试图使用开头的$和它应该的小数正确格式化。就像我说的。我一直无法找到问题的菜鸟回答。
答案 0 :(得分: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];
}
答案 1 :(得分:0)
UILabel *price;
NSString *dollarSign = "$";//Just use whatever currency symbol you need
price.text = [dollarSign stringByAppendingString:[NSString stringWithFormat:@"%.2f", priceVariable]];
这将以$ xxx.xx
格式打印答案 2 :(得分:0)
我编写了一个UITextField
子类来处理货币格式,可在此处找到:
https://github.com/TomSwift/TSCurrencyTextField
它将用户类型的货币金额格式化为ATM风格。限制用户输入除数字之外的任何内容。控件在内部使用NSNumberFormatter(货币风格!),你可以根据需要调整,调整货币符号($),小数位等。