オン状態とオフ状態の両方の画像を含む2つのNSButtonがあります。一度にアクティブにする必要があるのは1つだけです。一方をクリックしてからもう一方をクリックして、プロパティを前後に変更します。
問題は、ボタンがクリックされたときにボタンを無効にして再度クリックできない場合、ボタンが無効になっているときに画像が淡色表示されることです。淡色表示にしたくないので、代替画像を使用したいだけです。一方、ボタンを有効のままにして、プログラムでクリックしたときにコードを実行しない場合は、マウスをクリックすると点滅する効果があります。これは、ボタンが何もしないはずのときに気が散ります。
そのため、ボタンが無効になっているときにボタンが暗くなるのを防ぐか、マウスボタンを押しているときにボタンの外観が変化しないようにする必要があります。
読んだ後、NSButtonCellをサブクラス化し、前者を実行するには-(BOOL)imageDimsWhenDisabledをオーバーライドする必要があるようです。しかし、それをサブクラス化する方法(どの種類のNSButtonCellクラスから継承する必要があるか)と、NSButtonの「setCell」メソッドが新しいNSButtonCellクラスを使用するのに十分かどうか、またはNSButtonもサブクラス化する必要があるかどうかを正確に理解できません。 。
それに関するいくつかのヒントをいただければ幸いです。あるいは、私の目的を達成するためのまったく異なるアプローチがあるかもしれません。