Criando uma NSView de um CGPath
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).
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