当用作自定义工具栏视图的子视图时,NSButtons会留下伪像

时间:2012-09-25 13:17:57

标签: cocoa nsview nsbutton

我将一些按钮放在一个简单的矩形NSview中,它充当自定义工具栏。在第一次渲染时,按钮/视图按预期出现,但每次按下按钮(有时根本没有鼠标交互),人工制品就会出现。

之前

enter image description here

enter image description here

我可以通过在所有动作和焦点方法中调用[self.toolbarView setNeedsDisplay:YES]来消除伪影,但这看起来像是一个黑客,有没有什么干净的方法来处理这个?

2 个答案:

答案 0 :(得分:1)

这是初学者的问题。在drawRect方法

- (void)drawRect:(NSRect)dirtyRect

我正在使用param dirtyRect来绘制我的视图轮廓,假设它是视图的边界,实际上只有按钮周围的区域在被按下时变脏了。 “人工制品”实际上是我在错误的地方绘制的轮廓。

正确使用视图的边界

NSRect drawingRect = [self bounds];

'人工制品'不再出现。

答案 1 :(得分:0)

您只需尝试在IB中将按钮的聚焦环设置为“无”。