如何获取 NSTextField 内部的值?
我的 NSTextField 包含双精度数,如“1.67”或“0.05”等。
当我尝试以下操作时:
console.log([priceChange doubleValue]); //priceChange is an NSTextField
//Apply styles
if([priceChange doubleValue] > 0)
[priceChange setTextColor:[NSColor greenColor]];
else if([priceChange doubleValue] < 0)
[priceChange setTextColor:[NSColor redColor]];
else if([priceChange doubleValue] == 0)
[priceChange setTextColor:[NSColor blackColor]];
priceChange 始终等于 0,即使该值是其他值。如何正确获取priceChange的值?
My NSTextField contains doubles like "1.67" or "0.05" etc.
When I try the following:
console.log([priceChange doubleValue]); //priceChange is an NSTextField
//Apply styles
if([priceChange doubleValue] > 0)
[priceChange setTextColor:[NSColor greenColor]];
else if([priceChange doubleValue] < 0)
[priceChange setTextColor:[NSColor redColor]];
else if([priceChange doubleValue] == 0)
[priceChange setTextColor:[NSColor blackColor]];
priceChange is equal to 0 always, even when the value is something else. How can I properly get the value of priceChange?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这正是
NSNumberFormatter
的用途。为您的字段提供合适的格式化程序(易于在 IB 中添加/设置),并且 -objectValue 将开始返回NSNumber
。This is precisely what
NSNumberFormatter
is for. Give your field a suitable formatter (easy to add/setup in IB), and -objectValue will start returning anNSNumber
.尝试
[[priceChange stringValue] floatValue]
。还要确保字符串中的数字之前除了空格之外没有任何其他内容,否则 floatValue 将返回 0。Try
[[priceChange stringValue] floatValue]
. Also make sure there is nothing other than whitespace before the number in the string, or floatValue will return 0.