やっとツマミの方の画像をカスタマイズできたぞ!!!
NSSliderじゃなくてNSSliderCellの方をいじるわけですね。そして、単に setImage 的なものを呼ぶんじゃなくて drawKnob なるセレクタをオーバーライドしないといけない。さらに初心者にやさしくない bundle を絡めた画像指定。
・・・ハードル高杉!!!
/* MyGreatPlugin_CocoaView.h */
@interface MySliderCell : NSSliderCell
{
}
-(void)drawKnob:(NSRect)knobRect;
/* MyGreatPlugin_CocoaView.m */
@implementation MySliderCell
-(void) drawKnob:(NSRect)knobRect
{
NSBundle *bundle = [NSBundle bundleWithIdentifier : @"com.MyCompany.audiounit.MyGreatPlugin"];
NSString *path = [bundle pathForImageResource:@"MySliderKnobImage.png"];
NSImage* img = [[[NSImage alloc] initByReferencingFile:path] autorelease];
[[self controlView] lockFocus];
[img drawInRect:knobRect
fromRect:NSMakeRect(0,0,[img size].width,[img size].height)
operation:NSCompositeSourceOver
fraction:1.0];
[[self controlView] unlockFocus];
}
これを記述してセーブすると Interface Builder の方でスライダーセルのクラスとして MySliderCell が選択できるようになるので、それを選択するとやっとソースと.xibが結びつきます。
さて次は、knobRectの大きさの設定と、レールの方の画像設定だな・・・。