Показать спиннер внутри ручки NSSlider
Я хотел бы использовать NSSlider для управления доп. устройство. Потому что доп. Устройство работает медленно, ползунок должен отображать NSProgressIndicator ВНУТРИ РУЧКИ, пока устройство не достигнет значения, указанного ползунком. Но ни панель, ни счетчик не отображаются (ручка сохраняет свой внешний вид по умолчанию). Какие-либо предложения?
@implementation SubclassedNSSliderCell
-(void)drawKnob:(NSRect)knobRect
{
[spinner setFrame:knobRect]; // as suggested by jtbandes
[super drawKnob:knobRect]; // keep the default knob
[spinner drawRect:knobRect]; // draw the spinner on top
}
-(void)drawBarInside:(NSRect)frame flipped:(BOOL)flipped
{
// stick with default bar
[super drawBarInside:frame flipped:flipped];
}
-(BOOL)_usesCustomTrackImage
{
return YES;
}
// default stuff here...
-(id)init // nothing interesting here...
{
if ((self = [super init]))
{
spinner = [[NSProgressIndicator alloc] initWithFrame:
NSMakeRect(0.f, 0.f, 20.f, 20.f)];
[spinner setStyle:NSProgressIndicatorSpinningStyle];
[spinner startAnimation:self];
}
return self;
}
@end
РЕДАКТИРОВАТЬ: эта версия, наконец, отображает счетчик внутри ручки. Но при вращении слайдера вращение прекращается. Я сдаюсь...
-(void)drawKnob:(NSRect)knobRect
{
[super drawKnob:knobRect];
[[self controlView] addSubview:spinner];
[spinner setFrame:knobRect];
}