2011-01-28 68 views
1

我有一个自定义的NSView(MyView),它由NSViewCollectionItem呈现。请帮忙找出NSCollectionView的绑定

MyView具有MyObject类型的属性。

我的主要NSWindowController有IBOutlets NSViewCollection和NSArrayController。

NSArrayController绑定到MyObject类型的对象数组。

我想将数组中的值绑定到“myView.myObject”路径。

我无法弄清楚如何在IB中进行设置。我不明白我应该使用哪个键。我的数组是否应该是NSDictionary对象的集合,以便我可以有一个名为“myObject”的键,而不是直接存储这些值?

我对绑定非常陌生,所以这有点困难。请帮忙。

回答

1

我整理出来了。它应该是这样的:

1)NSArrayController的:
绑定到→MyWindowController(文件的所有者)
型号关键路径→myArrayWithObjects

2)NSCollectionView:
绑定到→ NSArrayController
Controller Key→arrangeObjects

3)现在,为了从阵列到自定义的NSView该值,你需要重写以下方法在NSCollectionViewItem子类:

- (void)setRepresentedObject:(id)object 
{ 
    [super setRepresentedObject:object]; 

    // e.g. [self.view setMyProperty:object]; 
} 
+0

你好安娜你在Swift中使用NSCollectionViewItem?我找不到`setRepresentedObject`方法,并且文档说这个方法被移动到了NSCollectionView,但是那里也没有这样的方法。:/也许你遇到了这个? – 2015-11-11 18:10:44

+0

最近我问了一个问题,也许你看看。谢谢。 http://stackoverflow.com/questions/33669886/cocoa-nscollectionview-item-binding-doesnt-update-image-like-in-cocoaslidecoll – 2015-11-12 11:50:29

1

你可以绑定“myView.myObject”到“representedObject 。属性“的NSCollectionViewItem。 所以,如果你有一个名为你的arrangeObject属性,你可以绑定一个对象representObject.info