1

我有这两个类:

@interface Father : NSObject
{
     NSString* name;
     NSArray* listChildren;
}

@property (copy, readwrite) NSString* name;
@property (copy, readwrite) NSArray* listChildren;

@end

@interface Child : NSObject
{
     NSString* nameChild;
     NSImage* picture;
}

@property (copy, readwrite) NSString* nameChild;
@property (copy, readwrite) NSImage* picture;

@end

我正在尝试制作一个NSCollectionView充满物品的Father物品,对于每个父亲物品,View我将有一个名称标签,另一个NSCollectionView充满(父亲)representedObject.listChildren物品。

我已经设法为父亲创建了一个外部 NIB 文件NSCollectionViewItemView使事情变得更容易,但我无法将孩子绑定CollectionView到该representedObject.listChildren属性。实际上,在 IB 中绑定没有问题,并且在运行时系统实际上正在调用该属性(我已经添加了getListChildren实现和 NSLog 调用以确保正在调用该属性)。似乎 innerCollectionView不会加载在我的NSArray* 属性中找到的项目?

这让我发疯,关于发生了什么的任何想法?请帮忙!!

4

1 回答 1

0

我有完全相同的问题,我找到了解决方案!

我是 Objective C 和 Cocoa 的新手,所以我不完全理解为什么这不能完全工作的原因。也许其他人可以启发我们。

在我的第一次尝试中,我只是在 default 中做了所有的事情MainMenu.xib。这样你就得到了两个NSArrayController。现在显然,正如您所怀疑的那样,问题在于NSArrayController内部项目的第二个问题。它以某种方式无法正确“复制”。将每个提取NSView到自己的.xib解决了这个问题。

实际上,这个讨论让我开始朝着正确的方向前进。后来我发现/理解这与@user493638 已经暗示的基本相同。

将这些知识与这里的教程相结合,关于如何将视图提取到自己的视图.xib中,为我解决了这个问题!

再说一次,我对 Objective C 和 Cocoa 的理解还不足以完全理解这种行为的根本原因,谁知道所有这些绑定魔法到底是如何工作的......

于 2012-09-26T21:00:50.283 回答