1

selectWord: は NSResponder アクション メッセージとして表示されます。NSTextView のサブクラスに selectWord: を実装すると、単語の選択を (ダブル マウス クリックで) キャッチできると単純に想定します。しかしもちろん、これはそう簡単には機能しません。ただし、少なくとも command-A キーボード イベントについては、selectAll: をキャッチできます(ただし、他の方法で選択を操作することはできません)。

ココア イベント処理の伝承の大部分が欠けているに違いありません。ここで、何が欠けているのかを尋ねています。

4

1 に答える 1

0

私の推測では、単語を選択するためにダブルクリックしても が呼び出されないことを発見したと思います-selectWord:

代わりにオーバーライド-mouseDown:して、NSEvent をチェックしてclickCount、ダブルクリックかどうかを調べることができます。

別の考え:

おそらく、テキスト ビューが呼び出されない理由は、-selectWord:そのメソッドが行うことではないからです。ドキュメントから、「選択範囲をその外側の最も近い単語境界に拡張します(単語区切り文字までですが、区切り文字は含みません)」。そのパラメーターはマウス イベントではないため、クリックが発生した場所を知ることさえできませんでした。だから、-mouseDown:関与することはできませんでした。

于 2013-03-12T00:50:09.200 に答える