Pergunta

Eu tenho um CGPath e quero desenhá -lo uma vez para uma NSView. Parece relativamente simples, mas não encontrei um caminho no Appkit (não iPhone).

Foi útil?

Solução

Lado de dentro -drawRect:, Você usa CGContextaddPath para adicioná -lo a um contexto e usar CGContext(Draw|Fill|Stroke)Path para desenhar. Ou seja, você subclasse nsview e substitua

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

Então -drawRect: será chamado sempre que apropriado. Você pode forçar a visão a ser atualizada ligando [view displayIfNeeded].

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top