2011-10-27 13 views
1

Mooseでは、ユーザがテキストペインでCommand-Mを押すたびにブラウザに通知させたい。ムースでは、どのように特別なキープレスが通知されますか?

私は内部のポートを聞いて、あらゆる種類のイベントを待っています。 Command-mを押したときに表示されるテキストイベントがありますが、command-mが押されたという事実は含まれていません。これを追加することにより、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を押すと、通知されません。変更されたテキストを受け入れると、通常のテキストの変更と区別できないような、ポートポート上のポートイベントが発生します。私は:テキストが受け入れられたかどうかはわかりません!

特殊なキーの押下やテキストの受け入れを通知するにはどうすればよいですか?

答えて

2

カスタムユーザーの操作は、アクションによって実現されます。ブラウザに影響を与えたいだけでなく、何らかの外部アクションを実行するだけでなく、プレゼンテーションが存在するポートの値にアクションのロジックが影響を及ぼしたい場合には、

たとえば、 http://www.themoosebook.org/book/internals/glamour/actions

:あなたはでより多くの情報を見ることができます

a text 
    "..." 
     populate: #selection 
     on: $m 
     entitled: 'Implementors' 
     with: [ :text :entity | "logic that retrieves the list of methods" ] 

:あなたは、システム内のすべてのメソッドのリストを得ることを期待コマンド-Mは、あなたにアクションを定義します

関連する問題