2011-06-13 65 views
0

我有一個名爲mapWindow的類,它連接到IB中的一個窗口。Objective-C無drawRect的繪圖:形狀不會顯示

無論如何,除非代碼位於drawRect下或我移動窗口邊框,否則我想讓程序渲染的紅色圓圈不會顯示出來。甚至沒有解鎖和鎖定焦點更新窗口。

OtherWindowView實際上是一個連接到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]

回答

2

繼續做你的圖形中-drawRect:。當發送-drawRect:時,您的視圖的座標系和剪切邊界將爲您設置,並且您的窗口的繪圖上下文將是當前的。

在該方法中,根據需要繪製儘可能多的這些圓。

+0

不,因爲只能通過setNeedsDisplay調用drawrect:YES允許一個對象不能有多個副本。 – evdude100 2011-06-30 11:46:40

+0

你錯了。 – NSResponder 2011-06-30 19:59:31

+0

非常感謝您的反饋,而不是測試代碼? – evdude100 2011-07-01 19:12:45