Question

J'utilise des liaisons pour la première fois sur un magasin de données de base avec une relation à une autre relation sur mes entités, j'affiche les subitems à l'aide d'un NSCollectionView qui montre une image et un titre.

Les objets sont:

Subitems Array Controller (NSArrayController)
Collection View Item (NSCollectionViewItem)

Les contrôles sont:

NSCollectionView
NSView (for the item)
   NSImageView
   NSTextField

J'ai lié l'élément NSImageView à la collection de collection avec un chemin de clés de modèle en tant que représentaedObject.ImagePath et un transformateur de valeur.Tout cela fonctionne bien.

Ce que je veux faire, c'est détecter un double clic sur l'élément dans le code et accédez à l'accès à l'élément Représentation de l'élément à double cliqué.

J'ai essayé de sous-classer NsimageView et de remplacer l'événement de la souris pour un événement de clic qui a fonctionné, mais je n'ai pas pu obtenir d'accès d'ici au contexte de gestion et à l'objet sélectionné.Je ne sais pas comment faire cela la bonne façon.

Merci de toute aide, je comprends que c'est des trucs de base et je dois faire quelque chose de mal à la mise en œuvre des liaisons.

Était-ce utile?

La solution

Implémentez la sous-classe de votre vision de la collection, dites CustomCollectionViewItem et modifiez la classe de l'élément de vision de la collection dans l'IB.

Sous-classe Vous NSImageView aussi, dans cette classe, le double clic.Créez un objet de délégué de référence faible et liez ce délégué à votre CustomCollectionViewItem à IB.

Maintenant, lorsque vous double-cliquez sur Demander au délégué d'appeler une méthode de votre CustomCollectionViewItem et dans CustomCollectionViewItem, vous avez accès à la ReprésibleObject.

Maintenant, le problème est de savoir comment transmettre davantage ceci à la classe du contrôleur actuel.Vous devez créer à nouveau un délégué de référence faible dans CustomCollectionViewItem et lier ce délégué à la classe de contrôleur principale de l'IB.

Ainsi, lorsque CustomCollectionViewItem reçoit une invocation de la sous-classe NsimageView, appelez la méthode de la classe de contrôleur principale et transmettez le représentantObject.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top