2

次のNSScrollerサブクラスがあり、丸みを帯びた白いノブがあり、矢印/スロット(背景)がないスクロールバーを作成します。

@implementation IGScrollerVertical

- (void)drawKnob
{
    NSRect knobRect = [self rectForPart:NSScrollerKnob];
    NSRect newRect = NSMakeRect(knobRect.origin.x, knobRect.origin.y, knobRect.size.width - 4, knobRect.size.height);
    NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:newRect xRadius:7 yRadius:7];
    [[NSColor whiteColor] set];
    [path fill];
}

- (void)drawArrow:(NSScrollerArrow)arrow highlightPart:(int)flag
{
    // We don't want arrows
}

- (void)drawKnobSlotInRect:(NSRect)rect highlight:(BOOL)highlight
{
    // Don't want a knob background
}
@end

スクローラーを使用するときに顕著な遅延があることを除いて、これはすべて正常に機能します。このビデオを参照してください:

http://twitvid.com/70E7C

私は自分が間違っていることについて混乱しています、何か提案はありますか?

4

1 に答える 1

2

問題を修正しました。drawKnobSlotInRectでrectを埋める必要がありました。

于 2009-10-23T16:37:51.930 に答える