いくつかのコードを検索しましたNSSliderCellが、探していることを実行する方法が見つかりません。
このようなものを作成したいと思います(白い線はスライダーノブ、1ピクセル幅です):

これを音楽トラックのタイムバーに使用するので、毎秒移動します(そのため、を使用しNSSliderて作業を簡単にします)。
上の画像のように、透明な中央のバーを備えたスライダーを作成するには、何をする必要がありますか?
PS:タッチ可能ではなく、表示用です。
いくつかのコードを検索しましたNSSliderCellが、探していることを実行する方法が見つかりません。
このようなものを作成したいと思います(白い線はスライダーノブ、1ピクセル幅です):

これを音楽トラックのタイムバーに使用するので、毎秒移動します(そのため、を使用しNSSliderて作業を簡単にします)。
上の画像のように、透明な中央のバーを備えたスライダーを作成するには、何をする必要がありますか?
PS:タッチ可能ではなく、表示用です。
私はついにそれを手に入れました:
NSSliderCellプロパティを持つサブクラスを作成しました@property float x;drawKnobメソッドを無効にし、その中に次のように書きました。-(void)drawKnob:(NSRect)knobRect {self.x =knobRect.origin.x; }
NSSlider(小さくして、幅をウィンドウの幅に変更しました)、セルクラスを作成したものに変更しました。[_timeBarSlider setMinValue:0]; [_timeBarSlider setMaxValue:myTrack.duration]; [_timeBarSlider setDoubleValue:myPlayer.currentPosition]; [[_timeBarImageView animator] setFrame:NSMakeRect(_timeBarSliderCell.x, yourYCoordinate, yourWidth, yourHeight)];
_timerBarSliderはIBにあるNSSliderです/_timerBarImageViewは垂直の画像ラインを含む画像ビューです/_timerBarSlderCellはNSSliderのセル(サブクラス化された)
ですPS:NSSliderはそのウィンドウ内のすべてのオブジェクトの背後にあるため、ユーザーには表示されません。メソッドが呼び出されないsetHidden:YESため、オンにすることはできません。drawKnob
これは、1 ピクセル幅の仕切りを使用した垂直分割ビューのように見えます。あなたはそれを試すかもしれません。必要に応じて簡単に移動できるように、仕切りの位置を設定する方法があります。NSSplitview のサブクラスを作成し、dividerThickness メソッドをオーバーライドして 1 を返すことにより、分割線を 1 ピクセルにすることができます。次に、2 つのサブビューの背景を黒に設定するだけです。簡単に試すことができるので、うまくいくかもしれません。幸運を。
drawRect:をサブクラス化するときと同様にNSView、実装を除いて、を使用[self doubleValue]して線を引く場所を決定するだけでオーバーライドできます。NSSliderただし、この場合、サブクラス化の意味がわかりません。カスタムNSViewは、線を描画する場所を決定するプロパティを持つことができ、他のコードはそのプロパティを設定したり、それにバインドしたりできます。