2011-01-28 71 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