2011-01-28 4 views
1

J'ai un NSView personnalisé (MyView), qui est rendu par le NSViewCollectionItem. MyView a une propriété de type MyObject.S'il vous plaît aider à comprendre la liaison pour NSCollectionView

Mon NSWindowController principal possède des IBOutlets pour NSViewCollection et NSArrayController. NSArrayController est lié à un tableau d'objets de type MyObject.

Je souhaite que les valeurs du tableau soient liées au chemin "myView.myObject".

Je n'arrive pas à comprendre comment configurer ceci dans IB. Je ne comprends pas quelles touches je devrais utiliser. Mon tableau doit-il être une collection d'objets NSDictionary à la place, afin que je puisse avoir une clé nommée "myObject" plutôt que de stocker les valeurs directement? Je suis très nouveau dans les liaisons, donc c'est un peu difficile. S'il vous plaît aider.

Répondre

1

Je l'ai trié. Il devrait se présenter comme suit:

1) NSArrayController:
se lier à → MyWindowController (propriétaire)
du fichier modèle Chemin clé → myArrayWithObjects

2) NSCollectionView:
Bind à → NSArrayController
Clé de contrôleur → arrangedObjects

3) Maintenant, pour obtenir cette valeur du tableau dans la mesure NSView, vous aurez besoin de passer outre la méthode suivante dans votre sous-classe NSCollectionViewItem:

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

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

bonjour Anna avez-vous travaillé avec NSCollectionViewItem dans Swift? Je ne peux pas trouver la méthode 'setRepresentedObject', et les docs ont dit que la méthode a été déplacée vers NSCollectionView, mais il n'y a pas de méthode de ce type aussi.:/Peut-être que vous rencontrez cela? –

+0

J'ai posé une question récemment, peut-être que vous jetez un coup d'oeil. Merci. http://stackoverflow.com/questions/33669886/cocoa-nscollectionview-item-binding-doesnt-update-image-like-in-cocoaslidecoll –

+0

@flinth désolé, je voudrais pouvoir vous aider, mais je n'ai pas travaillé avec Swift .. – anna

1

Vous pouvez lier « myView.myObject » à « representedObject .property "de NSCollectionViewItem. Donc, si vous aviez une propriété nommée info sur votre arrangedObject, vous pourriez lier un objet à representsObject.info

+0

Merci. Je le fais maintenant dans un autre scénario. Dans ma question originale cependant, je devais avoir le «representatedObject» lui-même lié à une propriété à mon avis. – anna

Questions connexes