0

我有一个包含模型对象实例的可变数组。该模型对象有几个属性,一个是“名称”。我在初始化或填充可变数组时没有问题。

我有一个带抽屉的窗户。我在抽屉中添加了一个表格,其想法是抽屉将使用该表格来显示模型对象的多个实例。

我在有抽屉的窗口的 xib 中添加了一个 nsarraycontroller。在 Array Controller Properties 中,我将 Object Controller 设置为模型类的一个实例。在 Array Controller Bindings 上,我将 Controller Content 设置为指向 File Owner 并将 Model Key Path 设置为数组的名称。

在表上,我将内容绑定到 Array Controller,将 Controller Key 绑定到 ArrangeObjects,将 Model Key Path 绑定到 name。

我的问题是,虽然可变数组已正确初始化和填充,但我在抽屉的桌子上看不到单个条目。我在这里错过了什么吗?

4

2 回答 2

1

两种可能:

首先:您可能绑定了错误的东西(您在这里的描述有点模棱两可)。将每个表列的“值”绑定到数组控制器的@"arrangedObjects.propertyName"(如排列对象.firstName 用于 First Name 列等)。有其他方法可以绑定整个表,但您可能没有绑定column的值,只是绑定表的内容。

第二:您的模型对象的访问器也可能不符合 KVO。确保正确的 KVO 通知包装了模型数组的 setter 访问器。如果你已经@synthesize成功了,一切都会好起来的。如果您对访问器进行了手动编码,则可能一切都不好。:-)

于 2010-01-19T19:46:52.473 回答
0

我假设您将tablecells表列绑定到 arraycontroller?我不认为 Interface Builder 会让你做任何其他事情。否则,听起来您已正确配置它。

我会推荐ibtool来解决这类问题。这是一个执行文本转储的命令行工具。与使用 Interface Builder 中的 GUI 相比,您可以以更紧凑的形式检查绑定。

于 2010-01-19T19:09:08.050 回答