2010-05-12 22 views

Répondre

1

À l'intérieur -drawRect:, vous utilisez CGContextAddPath pour l'ajouter à un contexte et utilisez CGContext(Draw|Fill|Stroke)Path pour le dessiner. C'est à dire. vous sous-classe NSView, et passer outre

- (void)drawRect:(NSRect)needsDisplayInRect 
{ 
    CGContextRef cgcontext = [[NSGraphicsContext currentContext] graphicsPort]; 
    CGContextAddPath(cgcontext,path); // assumes you have CGPathRef*path; 
    CGContextStrokePath(cgcontext); 
} 

Alors -drawRect: sera appelée le cas échéant. Vous pouvez forcer la mise à jour de l'affichage en appelant le [view displayIfNeeded].

+1

CGContextAddPath ne dessine pas réellement le chemin - vous devez utiliser le chemin CGContext {Draw | Fill | Stroke} pour cela. – Chuck

+0

Chuck a raison. C'est ce que j'ai fini par faire. Je pensais juste qu'il y aurait un moyen plus simple mais je suppose que non. –

+0

Vous avez raison. Je vais le corriger. – Yuji