2013-10-31 51 views
1

我是NSView的子类,并实现我自己的滑块控件(它比使用NSView更容易NSView我认为),因此我在该视图中实现“drawRect”方法。在自定义NSView中绘制奇怪的边框/背景

我也实现了“mouseDragged”方法并计算旋钮的位置,然后我调用[self setNeedsDisplay:YES]来使NSView子类重绘。

问题是,当我打电话给[self setNeedsDisplay:YES] NSView绘制灰色的背景和边框(看起来像一个圆角的矩形),但我没有在“drawRect”方法中绘制这个,并且这个边框和背景尽快消失我调整了超级视图的大小。

是什么导致这种背景/边框凹陷,我该如何预防它?

+1

我找到了一个方法。如果我打电话“[self.superview setNeedsDisplay:YES]”,它一切正常。这是一个好的解决方案吗? – Neigaard

回答

0

我发现,[超级的drawRect:矩形]没有执行好,但[超级setNeedsDisplay:YES]执行。

1

在你的drawRect方法包括此行: -

 [super drawRect:rect]; 
0

我发现,从注释代码:

[self.superview setNeedsDisplay:YES] 

工作,但没有人在接受的答案。只是发布这个寻求解决方案的其他人。

相关问题