1

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

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

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

是什么导致了这种背景/边框绘制,我该如何防止它?

4

3 回答 3

1

在你的drawrect方法中包括这一行: -

     [super drawRect:rect];
于 2013-10-31T15:31:18.413 回答
0

我发现评论中的代码:

[self.superview setNeedsDisplay:YES]

有效,但不是已接受答案中的那个。只是将其发布给其他寻求解决方案的人。

于 2015-01-07T13:25:46.623 回答
0

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

于 2013-11-07T13:52:36.023 回答