NSTextField:integerValue 行为不一致
NSTextField: integerValue behaving inconsistently
我发现 [NSTextField integerValue]
对包含千位分隔符的值的行为有所不同,具体取决于值的设置方式。
(我在德国,所以在这些例子中我的千位分隔符是一个点“.”)。
如果我调用[myTextField setIntegerValue:4567]
,文本字段将包含4.567(带有tousands分隔符)和[myTextField integerValue]
returns 4567.
如果我在文本字段中手动键入值 4.567 信息,或者使用 [myTextField setStringValue:@"4.567"]
,则 [myTextField integerValue]
returns 只是 4.
显然它停止解析千位分隔符处的数字,即使它在调用 setIntegerValue
.
时自己插入了这样一个分隔符
所以我实际上有两个问题:
- 有什么设置或其他简单的方法可以防止它在使用
-setIntegerValue:
时格式化数字吗?
- 我可以在调用
-integerValue
时"enable"将号码解析为understand/accept千位分隔符吗?或者,如果没有,从 NSString 中解析带有千位分隔符的数字的最简单方法是什么?
integerValue
不区分语言环境,它将始终使用 .
作为小数点。
您应该改用 NSNumberFormatter.numberFromString:
。
将数字格式化程序 (NSNumberFormatter
) 添加到故事板或 XIB 中的文本字段。这使得单元格的内容和文本字段的 objectValue
成为 NSNumber
而不是 NSString
.
Is there a setting or other easy way that I can prevent it to format the number when using -setIntegerValue: ?
关闭格式化程序的分组分隔符。
Can I "enable" the number parsing to understand/accept thousands separators when calling -integerValue?
打开格式化程序的分组分隔符并将主要分组设置为 3。
Or, if not, what would be the simplest way to parse a number with thousands separator from an NSString?
使用 NSNumberFormatter
,参见 class 参考和 Number Formatters。
我发现 [NSTextField integerValue]
对包含千位分隔符的值的行为有所不同,具体取决于值的设置方式。
(我在德国,所以在这些例子中我的千位分隔符是一个点“.”)。
如果我调用
[myTextField setIntegerValue:4567]
,文本字段将包含4.567(带有tousands分隔符)和[myTextField integerValue]
returns 4567.如果我在文本字段中手动键入值 4.567 信息,或者使用
[myTextField setStringValue:@"4.567"]
,则[myTextField integerValue]
returns 只是 4.
显然它停止解析千位分隔符处的数字,即使它在调用 setIntegerValue
.
所以我实际上有两个问题:
- 有什么设置或其他简单的方法可以防止它在使用
-setIntegerValue:
时格式化数字吗? - 我可以在调用
-integerValue
时"enable"将号码解析为understand/accept千位分隔符吗?或者,如果没有,从 NSString 中解析带有千位分隔符的数字的最简单方法是什么?
integerValue
不区分语言环境,它将始终使用 .
作为小数点。
您应该改用 NSNumberFormatter.numberFromString:
。
将数字格式化程序 (NSNumberFormatter
) 添加到故事板或 XIB 中的文本字段。这使得单元格的内容和文本字段的 objectValue
成为 NSNumber
而不是 NSString
.
Is there a setting or other easy way that I can prevent it to format the number when using -setIntegerValue: ?
关闭格式化程序的分组分隔符。
Can I "enable" the number parsing to understand/accept thousands separators when calling -integerValue?
打开格式化程序的分组分隔符并将主要分组设置为 3。
Or, if not, what would be the simplest way to parse a number with thousands separator from an NSString?
使用 NSNumberFormatter
,参见 class 参考和 Number Formatters。