1

具体的には、編集を許可せずにトークン化された方法でデータを表示するためだけにNSTokenField使用しているため、マウスイベントを無視したいと思います。NSTableCellView

トークン フィールドの設定はenabled = NO機能しますが、トークンがグレー表示され、テキストが読みにくくなります。

トークン フィールドを設定するeditable = NOと、トークン フィールドの外観を維持したまま編集できなくなりますが、トークンにマウスを合わせるとトークンが点灯します。それを防ぐことができれば、私は商売をしていたのに。

何かをサブクラス化し、いくつかのNSResponderメソッドをオーバーライドする必要があると思われますが、何をすべきかよくわかりません。サブクラス化NSTokenFieldとオーバーライドmouseEntered:を試みmouseMoved:、何もしないようにしましたが、それもうまくいきませんでした。

4

1 に答える 1

2

多くのことを試した後、Iulius Cæsar の提案に基づいて、これを機能させることができました。

トリックは、サブクラス化NSTextFieldしてオーバーライドすることでしたtrackingAreas:

- (NSArray *)trackingAreas
{
    return [NSArray array];
}

フィールドの作成時にフィールドのトラッキング エリアを削除するだけでは十分ではありませんでした。これは、フィールドがスクロール ビューにあり、トラッキング エリアが再作成される場合があるためです。

于 2012-03-26T18:45:02.877 に答える