我有这两个类:
@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我正在尝试创建一个用Father项填充的NSCollectionView,对于每个父项的View,我将有一个name标签,另一个NSCollectionView将用(父) representedObject.listChildren项填充。
我已经设法为父NSCollectionViewItem的View创建了一个外部NIB文件以简化操作,但是我无法将子CollectionView绑定到representedObject.listChildren属性。实际上,在IB中绑定没有问题,并且在运行时系统实际上正在调用该属性(我已经添加了getListChildren实现和一个NSLog调用以确保该属性被调用)。内部CollectionView似乎不会加载在我的NSArray*属性中找到的项?
它快把我逼疯了,你知道发生了什么吗?请帮帮我!
发布于 2012-09-27 05:00:50
我遇到了完全相同的问题,我找到了解决方案!
我完全是Objective C和Cocoa的新手,所以我不能完全理解为什么它不能准确地工作。也许其他人可以启发我们。
在我的第一次尝试中,我只是在默认的MainMenu.xib中做了所有的事情。这样你就会得到两个NSArrayController。显然,正如您所怀疑的那样,问题出在内部项的第二个NSArrayController上。不知何故,它没有被正确地“复制”。将每个NSView提取到它自己的.xib中可以解决这个问题。
实际上,这个discussion让我开始了正确的方向。后来我发现/理解了这与@user493638已经暗示的基本相同的想法。
将这些知识与教程here结合起来,如何将视图提取到它们自己的.xib中,为我解决了这个问题!
同样,我对Objective C和Cocoa的理解还不够充分,无法完全理解这种行为的潜在原因,谁知道所有这些绑定魔法到底是如何在引擎盖下工作的……
https://stackoverflow.com/questions/3533953
复制相似问题