在自定义NSView中绘制的奇怪边框/背景

时间:2013-10-31 12:04:09

标签: cocoa

我正在继承NSView并实现我自己的滑块控件(我认为使用NSView比使用NSControl更容易),因此我在该视图中实现了“drawRect”方法。

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

问题是,当我调用[self setNeedsDisplay:YES]时,NSView会绘制一个灰色的背景和边框(看起来像一个圆角的矩形),但是我不会在“drawRect”方法中绘制它,这个边框和背景会消失一旦我调整了超级视图的大小。

导致此背景/边框绘制的原因是什么?如何防止它?

3 个答案:

答案 0 :(得分:1)

在您的drawrect方法中包括以下行: -

     [super drawRect:rect];

答案 1 :(得分:0)

我发现[super drawRect:rect]表现不佳,但[super setNeedsDisplay:YES]表现不错。

答案 2 :(得分:0)

我发现评论中的代码:

[self.superview setNeedsDisplay:YES]

工作,但不是接受答案中的那个。只需在那里寻找解决方案的其他人发布此内容。