外観をカスタマイズするには、NSSliderCell をサブクラス化する必要があります。私はバーに問題はありませんでした、私はオーバーロードしました
- (void)drawBarInside:(NSRect)aRect flipped:(BOOL)flipped
期待どおりに動作します。
- (void)drawKnob:(NSRect)knobRect
同様に機能しますが、ノブを小さくしたいのですが、NSRect のサイズを変更することはできません。これは、カスタム ノブを中央に配置した場合、右側または左側 (または両方) に不要なスペースがあるためです。
ドキュメントを読んで、オーバーライドする必要があります
- (void)drawKnob
ノブを描画する必要がある rect を計算するには、drawKnob を呼び出します。問題は、cellSize を取得してノブを描画する場所を計算しようとすると、ばかげた幅 : 40000 が得られることです。
適切な幅を取得するにはどうすればよいですか? NSSliderCell は NSCell のサブクラスであるため、フレーム/境界にアクセスできません。