2011-01-28 13 views
1

私はカスタムNSView(MyView)をNSViewCollectionItemによってレンダリングしています。NSCollectionViewのバインディングを理解するのを助けてください

MyViewにMyObject型のプロパティがあります。

メインのNSWindowControllerにはNSViewCollectionとNSArrayControllerのIBOutletsがあります。

NSArrayControllerは、MyObject型のオブジェクトの配列にバインドされています。

"myView.myObject"パスにバインドされる配列の値が必要です。

これをIBで設定する方法がわかりません。私はどのキーを使用すべきか理解していない。私の配列はNSDictionaryオブジェクトのコレクションでなければならないので、値を直接格納するのではなく、 "myObject"という名前のキーを持つことができますか?

私はバインディングにはとても新しいので、少し苦労します。助けてください。

答えて

1

私はそれを選別しました。→へ
バインド:

1)NSArrayControllerは:MyWindowController→
バインド(ファイルの所有者)
モデルキーパス→myArrayWithObjects

2)NSCollectionViewそれは次のように行く必要がありますNSArrayController
コントローラキー→arrangedObjects

3)さて、カスタムNSViewのに配列からその値を取得するには、あなたがあなたのNSCollectionViewItemのサブクラスで、以下のメソッドをオーバーライドする必要があるだろう:

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

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

こんにちはAnna SwiftのNSCollectionViewItemで作業しましたか? 'setRepresentedObject'メソッドが見つからず、そのメソッドがNSCollectionViewに移動されたとドキュメントに書かれていますが、そのメソッドもありません:/これに遭遇しましたか? –

+0

私は最近質問をしました。ありがとう。 http://stackoverflow.com/questions/33669886/cocoa-nscollectionview-item-binding-doesnt-update-image-like-in-cocoaslidecoll –

+0

@flinth申し訳ありませんが、私は助けてくれると思いますが、私はSwiftとは協力していません。数時間前には – anna

1

あなたがrepresentedObject」に「myView.myObject」を結合することができますNSCollectionViewItemの ".property"です。 したがって、配置されたオブジェクトにinfoという名前のプロパティがある場合、オブジェクトをrepresentObject.infoにバインドできます。

+0

ありがとう。私は別のシナリオでこれをやっています。私のオリジナルの質問では、私は自分のビュー内のプロパティに "representObject"自体をバインドする必要がありました。 – anna

関連する問題