自定义Mac Scrollbars与Cocoa

时间:2009-12-28 04:43:22

标签: objective-c cocoa scrollbars

如何使用cocoa创建自定义滚动条?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

梦幻般的BWToolkit http://www.brandonwalkin.com/bwtoolkit/有自己的Scroll View实现,具有不同的外观。源代码会告诉你它是如何完成的。

答案 2 :(得分:0)

一个好的开始是看看Aaron Hillegass的这篇文章。 link text

达里尔