我正在继承NSView并实现我自己的滑块控件(我认为使用NSView比使用NSControl更容易),因此我在该视图中实现了“drawRect”方法。
我还实现了“mouseDragged”方法并计算了旋钮的位置,然后我调用[self setNeedsDisplay:YES]
来重新绘制NSView子类。
问题是,当我调用[self setNeedsDisplay:YES]
时,NSView会绘制一个灰色的背景和边框(看起来像一个圆角的矩形),但是我不会在“drawRect”方法中绘制它,这个边框和背景会消失一旦我调整了超级视图的大小。
导致此背景/边框绘制的原因是什么?如何防止它?
答案 0 :(得分:1)
在您的drawrect方法中包括以下行: -
[super drawRect:rect];
答案 1 :(得分:0)
我发现[super drawRect:rect]表现不佳,但[super setNeedsDisplay:YES]表现不错。
答案 2 :(得分:0)
我发现评论中的代码:
[self.superview setNeedsDisplay:YES]
工作,但不是接受答案中的那个。只需在那里寻找解决方案的其他人发布此内容。