objective-c - NSTextField doubleValue 本地化混淆

标签 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;

为什么会这样? 为什么 Controller 的值在发送到 View 时会自动转换,但当我从 View 中读取值时必须自己转换?我可以通过两种方式获得自动转换吗?

最佳答案

NSTextField 中的数字处理来自过去,过去的日子里,为了支持 NSFormatters 而逐渐弃用,所以它有点参差不齐也就不足为奇了。

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

关于objective-c - NSTextField doubleValue 本地化混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21509512/

相关文章:

objective-c - 在运行时确定 Objective-C 方法是否可变

ios - 如何强制 parse.com 将对象添加为字符串而不是数组?

objective-c - 检测 UITableView 滚动

java - Maven 默认语言环境与操作系统语言环境不同

ruby-on-rails - 带 rails 的奇怪的I18n日期输出

c# - 本地化组名

ios - NSURLConnection didSendBodyData 进度

Python strptime 芬兰语

c# - xslt本地化

ios - 'xxx' 没有可见的 @interface 声明选择器 'init:'