没有drawRect的Objective-C绘图:不会显示形状

时间:2011-06-13 00:38:51

标签: objective-c drawing draw nsbezierpath

我有一个名为mapWindow的类,它连接到IB中的窗口。

无论如何,我希望程序渲染的红色圆圈不会显示,除非代码在drawRect下或我移动窗口边框。甚至解锁和锁定焦点都不会更新窗口。

其他窗口视图实际上是一个连接到IB中自定义视图的NSView。

- (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 个答案:

答案 0 :(得分:2)

继续在-drawRect:中绘图。发送-drawRect:时,将为您设置视图的坐标系和剪裁边界,并且窗口的绘图上下文将是当前的。

在该方法中,根据需要绘制尽可能多的圆圈。