Как нарисовать надвидом NSView - PullRequest
2 голосов
/ 31 марта 2011

Я пытаюсь нарисовать вверху моего NSView, у которого есть несколько подпредставлений.На самом деле я пытаюсь воспроизвести стиль линии соединения Interface Builder.Вот код, который я сейчас использую:

- (void)drawRect:(CGRect)dirtyRect 
{
    // Background color
    [[NSColor whiteColor] setFill];
    NSRectFill(dirtyRect);

    // Draw line
    if(_connecting)
    {
        CGContextRef c = [[NSGraphicsContext currentContext] graphicsPort];
        [[NSColor redColor] setStroke];

        CGContextMoveToPoint(c, _start.x, _start.y);
        CGContextAddLineToPoint(c, _end.x, _end.y);        
        CGContextSetLineWidth(c, LINE_WIDTH); 
        CGContextClosePath(c);
        CGContextStrokePath(c);
    }
}

Первая часть - раскрасить мой NSView (если вы знаете другой способ, скажите мне, пожалуйста, потому что я пришел с разработки для iPhone иЯ пропускаю свойство backgroundColor UIView)

Затем, если соединение обнаружено, я рисую его с 2 NSPoint с.Этот код работает, но я не получил его для отрисовки подпредставлений, только для первого NSView.

1 Ответ

10 голосов
/ 31 марта 2011

Родительский вид не может рисовать поверх своих подпредставлений.Вам нужно будет разместить другой вид поверх подпредставлений и провести там линию.

...