为什么用这段代码(drawRect)渲染2行?

问题描述:

我想知道为什么我的窗口如下所示: 2 lines为什么用这段代码(drawRect)渲染2行?

当我调整窗口的大小,一条线保持伸展而另一个保持静态大小和倾斜。

As you can see, one of the lines keeps to the edges.

奇怪的部分是,我记录窗口的高度和宽度,每当drawRect被调用。

在应用程序开始时,drawRect方法被调用4次。 strange

我看着这个和意识到这是不实际的大小,移动窗口的大小了一下,得到真正结果。奇怪的是,它跳得如此之快。

enter image description here

奇怪的部分是“鬼”怎么行仍然存在,我不知道哪一个是鬼!为什么?我改变了显示线条的颜色...和:

enter image description here

这是静态显示的一个是被“产生”用我的每个代码的drawRect之一。

我使用我的drawRect代码:

- (void)drawRect:(NSRect)dirtyRect 
{ 
    NSLog(@"%f, %f", dirtyRect.size.height, dirtyRect.size.width); 
    NSBezierPath *line = [NSBezierPath bezierPath]; 
    [line moveToPoint:NSMakePoint(NSMaxX([self bounds]), NSMaxY([self bounds]))]; 
    //Sorry about formatting; SO doesn't make it easy to format. 
    [line lineToPoint:NSMakePoint(NSMinX([self bounds]), NSMinY([self bounds]))]; 
    [line setLineWidth:_lwith]; /// Make it easy to see 
    [_lineColor set]; /// Make future drawing the color of lineColor. 

    [line stroke]; 
} 

我问了一些解释,或者只是任何帮助!由于

自我回答

我做了什么?:我在故事板中的另一个NSView中有我的NSView的子类;子女NSView静态保持在一定的大小,而NSView(父母/窗口)正在*移动。请记住,我的孩子NSView的实例保存在我的ViewController中。 我的NSView显示的是一行,无论如何,只有当我有自己的实例时它才会改变颜色。

确保你有你的脚本的所有检查,矿看起来像现在这样: enter image description here

注意它是多么整洁只有一个“图”的观点;)