SetDecimalSeparator在实际设备中不起作用

时间:2014-06-27 16:10:41

标签: ios objective-c uitextfield

我有一个带有此代码的UITextField,它获取值并以货币格式转换:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[numberFormatter setCurrencySymbol:@"$"];
[numberFormatter setMaximumFractionDigits:2];
[numberFormatter setMinimumFractionDigits:2];

此代码效果很好,但是当我尝试使用此命令将小数点分隔符(逗号',')更改为(指向'。')时:

  [numberFormatter setDecimalSeparator:@"."];

我的TextField继续将逗号显示为分隔符,但这次我无法编辑我的文本字段,如何解决此问题?

EDIT

在Ipad模拟器中,这段代码效果很好,但是当我把这段代码放在真正的Ipad中时(来自巴西的语言)这段代码不起作用!

2 个答案:

答案 0 :(得分:4)

我发现了同样的问题。似乎NSNumberFormatter与NSNumberFormatterCurrencyStyle样式忽略decimalSeparator设置。我必须更改为NSNumberFormatterDecimalStyle才能设置自己的decimalSeparator。

答案 1 :(得分:1)

是的,我在所有iPad设备上也面临同样的问题,但在所有iPhone设备中它都运行良好。所以我添加了以下代码:

[numberFormatter setDecimalSeparator:@","];  
[numberFormatter setGroupingSeparator:@"."];

反之亦然

[numberFormatter setDecimalSeparator:@"."];  
[numberFormatter setGroupingSeparator:@","];

现在所有设备都能正常工作。 感谢