【问题标题】:Cocoa-Bindings : Bind NSComboBox selection to a field in NSObjectControllerCocoa-Bindings:将 NSComboBox 选择绑定到 NSObjectController 中的字段
【发布时间】:2009-10-29 13:45:03
【问题描述】:

在我的应用程序中,我有一个 NSObjectController 绑定到用户界面上的所有控件。到目前为止,这工作正常。我唯一的问题是将 NSComboBox 的选择绑定到同一个 ObjectController。据我今天发现,ComboBox 的值始终是一个字符串,因此 OBjectController 的类中的字段也是一个 NSString。对我来说听起来很容易,但不起作用。

我总是得到一个“...类与键的键值编码不兼容...

ComboBox 本身的项目来自另一个控制器,一个 NSArrayController。但这部分工作正常。 Array 中的所有项目都是 ComboBox 中的项目。我遇到的问题是将选择放入 ObjectController。

【问题讨论】:

  • 请发布完整的异常消息。

标签: cocoa cocoa-bindings nscombobox


【解决方案1】:

这只是说 NSObjectController 使用的任何数据模型对象都没有针对该值的适当键方法。

通过查看 Cocoa 绑定参考文档,value 绑定应设置为 NSObjectController 中的键,该键对应于其模型中的键值编码兼容键。

例子:

NSObjectController 模式为Class,类名称为foo。然后将 foo 的 comboSelection 键绑定到 NSComboBox 的 value。例外的意思是 Foo 类没有一个名为 comboSelection 的方法:

- (NSString*)comboSelection;
- (void)setComboSelection:(NSString*)inSelection;

在使用 NSMutableDictionary 作为 NSObjectController 的类的情况下,这要容易得多,因为字典可以保存任意键。

如果您使用的是 CoreData (mode = Entity),那么您的 CoreData 实体必须包含适当的属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多