4

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

在此处输入图像描述

在此处输入图像描述

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

4

2 回答 2

1

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

- (void)drawRect:(NSRect)dirtyRect

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

通过正确使用视图的边界

NSRect drawingRect = [self bounds];

“文物”不再出现。

于 2012-09-30T21:08:21.673 回答
0

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

于 2012-09-26T09:52:38.830 回答