NSSlider のノブのサイズが異なるカスタム イメージを描画するためのヒントをインターネットで検索してみました。
今回のアイデアを一か所に集められればと思います。
ほとんどの人が抱える問題は、別のサイズのノブが欲しいということです。私が読むことができる限り、sizetofit をオーバーライドしない限り機能しない大きなノブが必要になることもあります。
私は自分で解決策を持っていないので、同じことを探しました。
私の問題 (および全体の問題) は、ノブの画像が 22x30px であることです。
drawKnob: メソッドが次のサブクラス化された NSSliderCell があります。
- (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 を初期化するとき、フレームは画像を収めるのに十分な大きさですが、問題なく表示されません。
-(void)sizeToFit {} を使用した NSSlider のサブクラスを試しましたが、そこに何を設定すればよいかわかりませんでした。
誰もが使用でき、2 ~ 3 時間ググる必要がない、カスタム ノブ イメージを含む NSSlider のサンプル コードをここに 1 つ投稿できればと思います。
誰かがカスタム イメージで Slider を作成したと確信しています
ありがとう