gpt4 book ai didi

objective-c - NSTextField:integerValue 行为不一致

转载 作者:行者123 更新时间:2023-12-03 17:31:12 25 4
gpt4 key购买 nike

我发现 [NSTextField integerValue] 对于包含千位分隔符的值的行为有所不同,具体取决于值的设置方式。

(我在德国,所以这些示例中的千位分隔符是点“.”)。

  • 如果我调用 [myTextField setIntegerValue:4567],文本字段将包含 4.567(带有千位分隔符)和 [myTextField integerValue] 返回 4567。

  • 如果我在文本字段中手动输入值 4.567 信息,或使用 [myTextField setStringValue:@"4.567"],则 [myTextField [integerValue] 仅返回 4

显然,它会停止解析千位分隔符处的数字,即使它在调用 setIntegerValue 时本身插入了这样的分隔符。

所以我实际上有两个问题:

  1. 是否有设置或其他简单方法可以阻止它在使用 -setIntegerValue: 时格式化数字?
  2. 在调用 -integerValue 时,我可以“启用”数字解析以理解/接受千位分隔符吗?或者,如果没有,从 NSString 解析带有千位分隔符的数字的最简单方法是什么?

最佳答案

将数字格式化程序 (NSNumberFormatter) 添加到 Storyboard 或 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,请参阅类引用和 Number Formatters .

关于objective-c - NSTextField:integerValue 行为不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53048050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com