我正在使用自定义 NSSliderCell 创建自定义 NSSlider。除了旋钮之外,一切都很好。当我将它拖到旋钮被剪裁的最大值时,我只能看到旋钮图像的 50%。
在分配我的自定义 NSSliderCell 时,我将旋钮厚度设置为我用作旋钮的图像的宽度。我假设(我猜错了)它会考虑到这一点并阻止它剪裁?
任何想法我做错了什么?仅当旋钮被剪裁到 50% 时,滑块才会达到 maxValue,因此它不会在不添加任何值的情况下移动。
- (void)drawKnob:(NSRect)knobRect {
NSImage * knob = _knobOff;
knobRectVar = knobRect;
[[self controlView] lockFocus];
[knob
compositeToPoint:
NSMakePoint(knobRect.origin.x+4,knobRect.origin.y+knobRect.size.height+20)
operation:NSCompositeSourceOver];
[[self controlView] unlockFocus];
}
- (void)drawBarInside:(NSRect)rect flipped:(BOOL)flipped {
rect.size.height = 8;
[[self controlView] lockFocus];
NSImage *leftCurve = [NSImage imageNamed:@"customSliderLeft"];
[leftCurve drawInRect:NSMakeRect(5, 25, 8, 8) fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1];
NSRect leftRect = rect;
leftRect.origin.x=13;
leftRect.origin.y=25;
leftRect.size.width = knobRectVar.origin.x + (knobRectVar.size.width/2);
[leftBarImage setSize:leftRect.size];
[leftBarImage drawInRect:leftRect fromRect: NSZeroRect operation: NSCompositeSourceOver fraction:1];
[[self controlView] unlockFocus];
}