我正在制作用于 NSScrollView 的自定义 NSScrollers。但是当 NSScroller 的任何超级视图启用核心动画时。我得到这个绘图问题,这是一个巨大的麻烦。每当我滚动到滚动视图的角落时,滚动条都会剪辑。但是如果一个滚动条开始在角落里绘制,滚动条部分会停留在那个角落里。什么可能导致这个问题?我有太多代码要在这里显示。但这是我的绘图代码:
NSRect knobRect = [self rectForPart:NSScrollerKnob];
NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:knobRect
xRadius:CornerRadius
yRadius:CornerRadius];
[path setLineWidth:2];
[[NSColor colorWithDeviceRed:0.114 green:0.114 blue:0.114 alpha:0.3] set];
[path fill];
[[NSColor colorWithDeviceWhite:1.0
alpha:0.100] set];
// Clip drawing to this path; draw nothing outwith the path.
[path addClip];
[path stroke];
我已经尝试摆脱除了填充之外的所有东西,但它没有用。如果我在调用 setFloatValue 时在超级视图上调用 setNeedsDisplay:YES,这个问题就会消失。