Я попытался найти в Интернете хорошие советы, чтобы нарисовать собственное изображение с другим размером для ручки NSSlider.
Надеюсь, на этот раз мы сможем собрать идеи в одном месте.
Проблема, с которой сталкивается большинство людей, заключается в том, что им нужна ручка другого размера, иногда большего размера, которая не работает, если вы не переопределите sizetofit, насколько я мог прочитать.
У меня самого нет решения, и я искал то же самое.
Моя проблема (и вся проблема) в том, что у меня есть изображение для моей ручки размером 22x30px.
У меня есть подкласс NSSliderCell, в котором метод drawKnob::
- (void)drawKnob:(NSRect)knobRect {
NSImage *image = [NSImage imageNamed:@"sliderImage"];
[[NSColor colorWithPatternImage:image] set];
NSRectFill(knobRect);
}
который заполняет старую ручку моим изображением. Затем изменил RectFill на:
NSRectFill(NSMakeRect(knobRect.origin.x,knobRect.origin.y,25,35));
25/35 просто чтобы получить большие значения.
Но размер не изменит ширину (в моем случае это вертикальный ползунок), и изображение не начинается в реальном углу. Размещается посередине ручки, часть левой стороны обрезана, справа сдвоена.
При инициализации NSSlider рамка достаточно велика, чтобы вместить изображение, но не отображается должным образом.
Я попробовал подкласс NSSlider, в котором я использовал -(void)sizeToFit {}, но я действительно не знал, что там установить.
Я надеюсь, что мы сможем опубликовать здесь один пример кода NSSlider с пользовательским изображением ручки, который каждый может использовать и не должен гуглить в течение 2-3 часов.
Я уверен, что кто-то сделал слайдер с пользовательским изображением
Спасибо