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