2011-01-04 4 views
0

ねえ、 私のカスタムスライダにマウスを置いたときにコントローラを機能させる方法を見つけようとしています。コントローラがnssliderの上にマウスがあるときをコントローラに知らせる方法

スライダがハイライトされた色に変更される可能性があります。これは、スライダに描画された画像を変更するだけの簡単な理由でした。しかし、それ以外にも、私はそれ以上のことをすることができます。マウスオーバーでなければイメージを隠す、マウスの出口では隠すなどです。スライダが異なると、異なる画像が表示されます。

私はそれを見ている方法、私のアプローチは次のとおりです。
1)スライダーにタグを付けて、コントローラーがどの画像を表示/非表示にするかを知ることができます。

2)マウスオーバーすると、コントローラに通知され、コントローラが画像を表示または非表示にします。スライダーはアプリ全体で使用されているので、これをnssliderクラスにハードコードすることはできません。ハードコードした場合は、マウスを持っているスライダーで画像を隠すか再表示します。

どのようなアプローチを取るべきですか?

ありがとうございます。

答えて

0

NSSliderはNSControlであり、1つまたは複数のNSTrackingAreaオブジェクトを定義できます。 NSViewの-addTrackingArea:(および関連する)メソッドを使用して追加/管理します。

+0

ああ、ありがとう、私はコントローラにトラッキングエリアを追加することを考えなかった。私はnssliderクラス内のトラッキングエリアについて考えていました。 – han

関連する問題