Objective-C Рисование без drawRect: фигуры не будут отображаться - PullRequest
0 голосов
/ 13 июня 2011

У меня есть класс с именем mapWindow, который подключен к окну в IB.

Независимо от того, что красный круг, который я хочу, чтобы программа отображала, не будет отображаться, если код не находится под drawRect или я не переместил границы окна. Даже разблокировка и блокировка фокуса не обновляет окно.

theOtherWindowView на самом деле является NSView, подключенным к пользовательскому представлению в IB.

- (void)test
{
    [theOtherWindowView lockFocus];
    NSBezierPath *path = [NSBezierPath bezierPath];
    NSPoint center = [self drawPoint];
    [path moveToPoint: center];
    [path appendBezierPathWithArcWithCenter:center
                                        radius:explosionRadius
                                    startAngle:0
                                    endAngle:360];
    [[NSColor redColor] set];
    [path fill];

    [theOtherWindowView unlockFocus];
}

Я не хочу использовать drawRect, потому что мне нужно несколько экземпляров , а не одна фигура, координаты которой меняются при каждом обновлении.

Я также пробовал [self lockFocus] и [mapWindow lockFous]

1 Ответ

2 голосов
/ 13 июня 2011

Продолжайте рисовать в -drawRect:.При отправке -drawRect: система координат вашего вида и границы отсечения будут установлены для вас, а контекст рисования вашего окна будет текущим.

В этом методе нарисуйте столько кругов, сколько хотите.

...