NSTextField doubleValue本地化混淆

时间:2014-02-02 10:32:31

标签: objective-c localization

我来自德国。所以我对本地化和类 NSTextField 的属性 doubleValue 有一点问题。逗号和积分与美国不同。

double a = self.heightTextField.doubleValue;

如果我的文本字段中有一个“11,11”,我只得到整数部分,除非我用一个点写“11.11”。所以我想我必须根据我当前的位置转换这个值。没什么大不了。 NSNumberFormatter会这样做。

但是如果我为属性赋值,那么一切都可以正常工作。 <11.11“在NSTextField上被转换为”11,11“而我没有做任何事情。

self.heightTextField.doubleValue = 11.11;

为什么会这样? 为什么发送到视图时控制器的值会自动转换,但是当我从视图中读取值时,我必须自己转换它?我可以双向进行自动转换吗?

1 个答案:

答案 0 :(得分:2)

NSTextField中的数字处理来自过去的旧时代,并且正在逐渐被弃用以支持NSFormatters,因此它不足为奇。

正如@Michael所说,如果你想处理不同的本地化,你应该在你的领域添加一个NSNumberFormatter。您只需将Interface Builder的类调色板中的一个拖出到相关字段即可。