1

外観をカスタマイズするには、NSSliderCell をサブクラス化する必要があります。私はバーに問題はありませんでした、私はオーバーロードしました

- (void)drawBarInside:(NSRect)aRect flipped:(BOOL)flipped

期待どおりに動作します。

- (void)drawKnob:(NSRect)knobRect

同様に機能しますが、ノブを小さくしたいのですが、NSRect のサイズを変更することはできません。これは、カスタム ノブを中央に配置した場合、右側または左側 (または両方) に不要なスペースがあるためです。

ドキュメントを読んで、オーバーライドする必要があります

- (void)drawKnob

ノブを描画する必要がある rect を計算するには、drawKnob を呼び出します。問題は、cellSize を取得してノブを描画する場所を計算しようとすると、ばかげた幅 : 40000 が得られることです。

適切な幅を取得するにはどうすればよいですか? NSSliderCell は NSCell のサブクラスであるため、フレーム/境界にアクセスできません。

4

1 に答える 1