Mooseでは、ユーザーが任意のテキスト ペインで Command-M を押すたびにブラウザに通知されるようにします。
あらゆる種類のイベントを待って、内部ポートを聞いています。Command-m が押されたときに発生するテキスト イベントがありますが、command-m が押されたという事実は含まれていません。
Moose で確認するにGLMExplicitBrowser>>innerPortEvent:
は、これを最初のステートメントに追加して変更します。
(aPortEvent port name asString beginsWith: 'select') ifFalse:[ aPortEvent inspect.].
ワークスペースで次を実行します。
|browser |
browser := GLMBasicExamples new textSelection.
browser openOn: (1 to: 100).
((browser paneNamed: #start) port: #selection) value: 2.
((browser paneNamed: #end) port: #selection) value: 5.
テキストが変更されるたびに通知されます。Command-M を押しても通知されません。変更されたテキストを受け入れると、通常のテキスト変更と見分けがつかないように見えるテキスト ポートでポート イベントが発生します。つまり、テキストが受け入れられたかどうかはわかりません。
特別なキーの押下とテキストの受け入れについて通知を受け取るにはどうすればよいですか?