我将一些按钮放在一个简单的矩形NSview中,它充当自定义工具栏。在第一次渲染时,按钮/视图按预期出现,但每次按下按钮(有时根本没有鼠标交互),人工制品就会出现。
之前
后
我可以通过在所有动作和焦点方法中调用[self.toolbarView setNeedsDisplay:YES]来消除伪影,但这看起来像是一个黑客,有没有什么干净的方法来处理这个?
答案 0 :(得分:1)
这是初学者的问题。在drawRect方法
中- (void)drawRect:(NSRect)dirtyRect
我正在使用param dirtyRect
来绘制我的视图轮廓,假设它是视图的边界,实际上只有按钮周围的区域在被按下时变脏了。 “人工制品”实际上是我在错误的地方绘制的轮廓。
正确使用视图的边界
NSRect drawingRect = [self bounds];
'人工制品'不再出现。
答案 1 :(得分:0)
您只需尝试在IB中将按钮的聚焦环设置为“无”。