做绑定做错了,找不到什么

时间:2010-01-19 18:50:46

标签: objective-c cocoa cocoa-bindings nstableview nsarraycontroller

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

我有一个带抽屉的窗户。我在抽屉里添加了一个表,这个想法是抽屉会使用表来显示模型对象的几个实例。

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

在表格中,我将内容绑定到数组控制器,将配置的Controller Key和名称的模型关键路径绑定到。

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

2 个答案:

答案 0 :(得分:1)

两种可能性:

首先:你可能绑错了(你的描述有点含糊不清)。将每个表列的“值”绑定到数组控制器的@"arrangedObjects.propertyName"(如FirstName列的arrangeObjects.firstName等)。还有其他方法来绑定整个表,但您可能没有绑定的值,只是表的内容。

第二:,您的模型对象的访问者也可能不符合KVO。确保正确的KVO通知包装模型数组的setter访问器。如果你@synthesize'它,一切都应该是好的。如果您手动编码了访问者,那么一切都可能不太好。 : - )

答案 1 :(得分:0)

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

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