NSScrollViewで使用するカスタムNSScrollerを作成しています。しかし、NSScrollerのスーパービューのいずれかがCoreAnimationを有効にしたとき。私はこの描画の問題を非常に厄介に受けます。スクロールビューの隅にスクロールするたびに、スクローラークリップが表示されます。ただし、スクローラーがコーナーで描画を開始した場合、スクローラー部分はそのコーナーに留まります。この問題の原因は何ですか?ここに表示するにはコードが多すぎます。しかし、ここに私の描画コードがあります:
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を呼び出すと、この問題は解消されます。