具体的には、私はNSTableCellView
でそれを使用しているため、編集を許可しないでトークン化された方法でデータを表示するため、NSTokenField
マウスイベントを無視したい。NSControl(NSTokenFieldなど)のマウスイベントを無視する方法
トークンフィールドをenabled = NO
に設定すると、トークンがグレーアウトされ、テキストを読みにくくなります。
トークンフィールドのを設定すると、トークンフィールドの外観を維持しながら編集ができなくなります。ただし、トークンの上にマウスを置くと、ライトが点灯します。もし私がそれを防ぐことができれば、私はビジネスになるだろう。
私は何かをサブクラス化して、いくつかのNSResponder
メソッドをオーバーライドする必要があると思っていますが、どうすればよいかわかりません。 NSTokenField
をサブクラス化して、mouseEntered:
とmouseMoved:
を上書きしようとしましたが、何もできませんでした。
フィールドはおそらく[追跡エリア](http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/NSTrackingArea_class/Reference/Reference.html)を使用してマウスの入力/終了を取得している可能性がありますイベント。 'mouseEntered:'を無効にした理由を正確にはわかりませんが、サブクラス化されていないフィールドで '[field setTrackingArea:nil]'を試して、何が起こるかを見てください。 –
私がクラスを作成したとき、 'drawRect:'はオーバーライドされていたので、何もしなかったことを指摘してくれてありがとう。私は 'for(tokenField trackingAreas)のNSTrackingArea * trackingAreaを試しました){ [tokenField removeTrackingArea:trackingArea]; } '、しかしサイコロはありません。また、 'mouseEntered:'に加えて 'mouseMoved:'をオーバーライドしようとしましたが、どちらもうまくいきませんでした。 – yuji
@yuji:テストする時点で私のマシンを持っていません。アイデア。あなたはこのクラスのためにあなた自身の書き換えを書いておきたいかもしれません。例として 'BWToolkit'を見てください。 –