5

ココアでカスタムスクロールバーを作成するにはどうすればよいですか?

4

1 に答える 1

7

必要がなければ、あまり多くの車輪を作り直さないでください。スクロールバーの外観をカスタマイズしたいだけの場合は、NSScrollerをサブクラス化して、さまざまなdrawメソッドをオーバーライドする方が簡単な場合があります。

これはテストされていないコードですが、独自の画像がある場合にノブの外観をカスタマイズするために何をする必要があるかを示す必要がありますMyKnob.png


@interface MyScroller : NSScroller
{
    NSImage *knobImage;
}
@end




@implementation MyScroller

- (void) dealloc
{
    [knobImage release];
    [super dealloc];
}

- (id) initWithFrame:(NSRect) frame
{
    self = [super initWithFrame:frame];
    if (!self) return nil;

    knobImage = [[NSImage imageNamed:@"MyKnob.png"] retain];

    return self;
}

- (void) drawKnob
{
    // Work out where exactly to draw the knob
    NSPoint p = NSMakePoint(0.0, 0.0);

    [knobImage drawAtPoint:p fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0];
}

@end

于 2009-12-28T05:40:04.587 に答える