我的应用程序中有两个UITextFields,这个应用程序与货币有关。我试图让它的格式正确的$在开头和小数点的地方,它应该。就像我说的。我一直找不到答案来回答我的问题。
发布于 2013-08-15 04:59:08
这里发生的事情是,您正在添加一个观察者,它告诉我们用户何时完成编辑。一旦发生这种情况,我们的formatCurrency方法就会完成更新textfield外观的工作。一旦数字字段放弃其第一个响应状态,这些更改就会完全生效。
- (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-10-31 17:36:15
我编写了一个UITextField子类来处理货币格式,如下所示:
https://github.com/TomSwift/TSCurrencyTextField
它将货币金额格式化为用户类型,ATM风格.用户不得输入除数字以外的任何内容。控件使用NSNumberFormatter (货币样式!)在内部和你可以调整,如果你愿意,调整货币符号($),小数位,等等。
https://stackoverflow.com/questions/18246486
复制相似问题