Cocoa 当用作自定义工具栏视图的子视图时,NSButtons会保留人工制品
我将在一个简单的矩形视图中放置几个按钮,该视图充当自定义工具栏。在第一次渲染时,按钮/视图按预期显示,但每次按下按钮(有时根本没有鼠标交互)都会出现人工制品 之前 之后Cocoa 当用作自定义工具栏视图的子视图时,NSButtons会保留人工制品,cocoa,nsview,nsbutton,Cocoa,Nsview,Nsbutton,我将在一个简单的矩形视图中放置几个按钮,该视图充当自定义工具栏。在第一次渲染时,按钮/视图按预期显示,但每次按下按钮(有时根本没有鼠标交互)都会出现人工制品 之前 之后 我可以通过在所有动作和对焦方法中调用[self.toolbarView setNeedsDisplay:YES]来消除这些伪影,但这似乎是一个黑客行为,有没有干净的方法来处理这个问题?您只需尝试在IB中将按钮的对焦环设置为“无”。这是一个初学者的问题。在drawRect方法中 - (void)drawRect:(NSRect
我可以通过在所有动作和对焦方法中调用[self.toolbarView setNeedsDisplay:YES]来消除这些伪影,但这似乎是一个黑客行为,有没有干净的方法来处理这个问题?您只需尝试在IB中将按钮的对焦环设置为“无”。这是一个初学者的问题。在drawRect方法中
- (void)drawRect:(NSRect)dirtyRect
我使用paramdirtyRect
来绘制视图的轮廓,假设它是视图的边界,而实际上只有按钮周围的区域在按下时变脏了。“人工制品”实际上是我的轮廓画错了地方
通过正确使用视图的边界
NSRect drawingRect = [self bounds];
“人工制品”不再出现。告诉您如何创建按钮和搜索字段按钮是常规的NSButtons,带有png图像设置的图像属性,没有什么异常。NSSearchField也有库存。问题似乎在于将它们作为NSView的子视图放置,其中drawRect:方法绘制渐变。焦点环当前设置为“无”,将其设置为“默认”也不会改变有问题的行为。