【发布时间】:2013-05-11 16:09:05
【问题描述】:
假设我有一个代表国家/地区的 NSObject 子类,例如
@interface CountryInfo : NSObject
@property (nonatomic, retain) NSString *countryName;
我的模型包含 NSMutableArray 和 CountryInfos。我想将数组绑定到NSComboBox。组合框应显示国家名称,并允许用户选择国家。
所以,我这样设置我的 .xib:
CountryArrayController (NSArrayController)
内容数组
- 绑定到:文件所有者 > 模型密钥路径:self.model.countries
NSComboBox
内容
- 绑定到:CountryArrayController > 控制器键:arrangedObjects
内容价值
- 绑定到:CountryArrayController > 控制器键:arrangedObjects > 模型键路径:countryName
到目前为止,一切都很好。现在,如何绑定NSComboBox的Value?文档指出:
"An NSString or NSNumber that specifies the value of the NSComboBox."
这是什么意思?
我注意到我可以将它绑定到我的模型上的NSString,它将反映选定的countryName。但我想绑定到CountyInfo 对象本身!无论是直接绑定,还是通过绑定到我的数组控制器上的选择:我该如何设置?
【问题讨论】:
-
你试过使用 NSValueTransformer 吗?
-
嗨@macandyp,是的,NSValueTransformer 确实可以工作,我可以通过绑定字符串值并在代码中手动转换来获得相同的行为。似乎很奇怪,我必须编写额外的代码来实现这一点,并且不能只绑定到对象(这是我习惯的)。谢谢!
-
我同意这有点奇怪。我知道,如果您绑定到内容,而不是绑定内容值,它将调用您的类的描述来填充组合框的字符串。不过,我不知道这是否对您有帮助。
标签: cocoa binding cocoa-bindings nsarraycontroller nscombobox