[Résolu] NSCollectionView, comportement étrange d'une customView...
Bonsoir,
Il m'arrive un drôle de truc, je n'arrive pas à comprendre quelle erreur je fais.
J'ai implémenté une fenêtre contenant une NSCollectionView et je l'ai reliée à un document Core Data, juste pour découvrir cette classe.
Tout a baigné dans l'huile jusqu'au moment où j'ai décidé de mettre une customView dans la vue-prototype de la collectionView.
La custom view passe bien dans son awakeFromNib (une seule fois, bien sûr) et elle initialise correctement ses propriétés [@Kubernan: property (strong)].
Ensuite, dans son drawRect, ses propriétés sont remises à 0.
Quid? Si vous le désirez, je peux joindre le projet, il n'est pas lourd:
Bon, je google et regoogle, ça commence à sentir très fort le sous-classement cette histoire. Serait-ce encore une de ces classes "clé en main" d'Apple? Ils nous filent effectivement les clés mais c'est à nous de fabriquer la serrure...
Réponses
La doc d'Apple au sujet de NSCollectionView est proche de zéro.
Il y a cependant un principe à comprendre: le programmeur doit définir une instance de la vue, le prototype, qui sera répliqué pour créer chaque cellule.
La question à laquelle ne répond pas la doc d'Apple est " Comment NSCollectionView fait-elle pour dupliquer la vue prototype ? ".
Après quelques essais, je peux dire que c'est en utilisant le protocole NSCoder: elle archive la vue, et la désarchive pour chaque nouvelle instance.
De fait, ajoute simplement cela au code de ta vue perso:
Tu vas voir du changement, même si le dégradé n'est pas parfait.
Merci, Céroce !
Impeccable, et merci d'avoir effectué les essais en question! Les réponses dans d'autres forums me branchaient sur la dérivation de NSCollectionView, NSCollectionViewItem, des IBOutlets, etc...
Ta solution est ponctuelle, prend les choses en amont et rendent ma vue dérivée plus fonctionnelle à peu de frais!
PS : J'ai cliqué sur "J'aime", mais comment fait-on pour donner des +, ici?