impossibilité de dessiner un "rect"
macvelotte
Membre
Le code suivant :
me vaut pour la première ligne : "invalid initializer"..
Or je l'ai rempris d'autres applications pour lesquelles le même code est accepté.
Je ne comprends pas ! >:(
<br />- (void)drawRect:(NSRect)rect<br />{<br /> NSRect bds= [self bounds];<br /> [[[NSColor greenColor]colorWithAlphaComponent:0.4f]set];<br /> [NSBezierPath fillRect:bds];<br />}<br />
me vaut pour la première ligne : "invalid initializer"..
Or je l'ai rempris d'autres applications pour lesquelles le même code est accepté.
Je ne comprends pas ! >:(
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Ca donnerai :
[[[NSColor greenColor]colorWithAlphaComponent:0.4f]set];
[NSBezierPath fillRect:rect];
Mais pour le pb de la première ligne, il faudrait savoir ce qu'est "self". Si c'est un objet descendant de NSView, ça devrait marcher. Sinon, faut que l'objet réponde à la méthode bounds et que celle ci renvoie bien un NSRect.
a+
Euh... je vais peut-être dire une connerie, mais il me semble que rect est la portion à dessiner ou redessiner, pas forcément le rectangle englobant.
Dites-moi si je me trompe, c'est loin tout ça...
Non, tu ne te trompes pas.
L'argument rect provient de la somme des rectangles à redessiner dans la vue.
Ces rectangles proviennent de la méthode setNeedsDisplayInRect: et consort de NSView.
.