首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与NSPopUpButton一起使用的NSFormatter

与NSPopUpButton一起使用的NSFormatter
EN

Stack Overflow用户
提问于 2010-01-11 03:24:43
回答 1查看 803关注 0票数 1

我有一个NSPopUpButton,它的内容值绑定到NSNumbers的NSArray。NSPopUpButton在弹出菜单中正确显示数字数组。但是,当我更改所选值时,我收到一条消息:

代码语言:javascript
复制
HIToolbox: ignoring exception 'Unacceptable type of value for attribute: property = "tempo"; desired type = NSNumber; given type = NSCFString; value = 106.' that raised inside Carbon event dispatch

显然,之所以会发生这种情况,是因为所选值绑定到的对象需要一个NSNumber,而NSPopUpButton给了它一个NSString。翻看其他帖子,我想我需要的是一个NSNumberFormatter。

但是,我已经尝试通过接口生成器和编程方式使用NSNumberFormatter,但结果没有改变。作为参考,这是我在尝试以编程方式设置NSPopUpButton的格式化程序时使用的代码:

代码语言:javascript
复制
tempoFormatter = [[NSNumberFormatter alloc] init];
[tempoFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[tempoFormatter setFormat:@"### bpm"];

[[tempoButton cell] setFormatter:tempoFormatter];

(tempoButton是连接到NSPopUpButton的IBOutlet )

我想知道使用NSNumberFormatter是否是我所需要的?如果是这样,我做错了什么?我已经通读了数据格式化编程指南;它看起来非常简单,但我觉得我遗漏了一些东西。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-11 04:10:52

这取决于您使用哪个绑定来获取NSPopupButton的选定值。

如果你绑定到"Selected Value",你会得到一个NSString。

如果您绑定到"Selected Object",您将获得由selection表示的对象,在本例中是一个NSNumber。

否则,您将在绑定中添加一个NSValueTransformer,以将选定的值转换为您期望的对象。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2038235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档