假设我们有以下模型:
实体1 :人员 关系:夹克
实体2 :夹克
属性:尺寸
关系:所有者
所以我们有:
所有者< - >>夹克(每个人可以有很多夹克,但夹克只能有一个夹克)
让我们设置一个包含2列的NSTableView。我绑定第一个显示所有人。然后我希望第二列显示第一列中所选所有者拥有的夹克尺寸。获取第一列是微不足道的,但如何绑定第二列?我是否需要另一个NSArrayController来表示Jackets实体,或者我可以直接使用类似于(这不起作用)将列绑定到Persons NSArrayController并在值绑定控制器键下执行它:selection&模型关键路径:arrangeObjects.size。当我尝试这个时,我得到错误:
[addObserver:forKeyPath:@“arrangeObjects.Jacket.size”options:0x0 context:0x0]被发送到与“arrangeObjects”属性不符合KVC的对象。
谢谢, 汉斯
答案 0 :(得分:0)
你可以通过调用aPerson.jackets:
来遍历一个人的夹克NSMutableString *allSizes = [NSMutableString string];
for (Jacket *jacket in aPerson.jackets){
allSizes = [allSizes stringByAppendingString: jacket.size];
}
//Show allSizes in the second column
答案 1 :(得分:0)
我终于解决了它。我犯了两个错误:
我试图在一个NSTableView中绘制一个类似树的结构。由于这不支持我在第一个表格中有3个实例而在第二个表格中有数百个。
我必须将新的NSArrayController绑定到第二个NSTableView,并将其内容集绑定到我的Jackets NSArrayController的选择。
解决了它!