Je souhaite placer un contrôle personnalisé dans la vue de mon NSCollectionViewItem. Disons que j'ai un NSView personnalisé appelé BoxesView.BoxesView est juste une vue qui dessine un nombre prédéterminé de boîtes dans sa vue. Ce nombre de boîtes est défini dans la méthode init. Disons que je l'ai mis à 8.Contrôle personnalisé dans NSCollectionViewItem
Lorsque je charge la vue de collection, toutes les autres commandes de la vue fonctionnent correctement (boutons, curseurs, etc.) mais ma vue ne dessine pas.
Si je définis un point d'arrêt dans la méthode drawRect de BoxesView, cela montre que le nombre de boîtes à dessiner est 0! Si je mets un point d'arrêt dans ma méthode init où je mets numBoxes à 8, cela montre que numBoxes est en réalité mis à 8. De plus, la méthode init est appelée 1 fois même s'il y a plusieurs lignes dans la vue de collection.
Qu'est-ce que je fais mal?
MISE À JOUR
j'ai pu obtenir ce travail en réglant le itemPrototype à charger à partir d'un xib au lieu d'être dans le même que le xib NSCollectionViewItem. C'est génial, sauf qu'il ne fonctionne que sur 10.6 et non 10.5.
MISE À JOUR 2
Ce que je suis en train de faire, est coller mon avis personnalisé dans la vue qui existait déjà pour le NSCollectionViewItem qui existe déjà. Qu'est-ce qui se passe est la variable membre mBoxWidth est emporté et est nul alors quand il va le dessiner, rien ne se passe.
@implementation DumbView
- (id)initWithFrame:(NSRect)frame {
self = [super initWithFrame:frame];
if (self) {
mBoxWidth = 3;
}
return self;
}
- (void)drawRect:(NSRect)dirtyRect {
NSRect bounds = self.bounds;
[[NSColor redColor]set];
[NSBezierPath fillRect:NSMakeRect(bounds.origin.x, bounds.origin.y, mBoxWidth, mBoxWidth)];
}
@end
De quelle méthode 'init' faites-vous référence?D'où le message 'init' est-il envoyé? Avez-vous vérifié que vous inspectez la propriété 'numBoxes' de la même vue que celle de l'élément de vue de collection? –
Je parlais de la méthode d'initialisation BoxesView. Il est appelé par la plume qui est en cours de chargement dans l'un de mes contrôleurs. Le contrôleur est le propriétaire du NSCollectionView – Randall
Veuillez modifier votre question pour inclure le code que vous utilisez pour configurer la vue de collection, pour charger la vue de l'élément et pour créer et configurer des éléments de vue de collection. –