07-28-2011, 05:08 PM,
|
|||||
|
|||||
Enterキーでのフォーカス遷移
テキストフィールドなどのコントロールは通常タブキーでフォーカス遷移しますが、
このフォーカス遷移をEnterキーで行うことはできないでしょうか。 |
|||||
07-28-2011, 05:13 PM,
|
|||||
|
|||||
RE: Enterキーでのフォーカス遷移
Enterキーが押されたイベントは、UIオブジェクトのKeyPressイベントで取得できるので、
この中でTabキーのイベントに変換して流してやればいけそうです。 下記のコードはレコードグリッドのカスタムセルのサンプルです。 cell-spec に設定すると、グリッド内のセルがエンターキーで遷移します。 Code: {define-class public EnterMoveCell {inherits StandardStringCell} ちなみに、キープレスのイベントをenuqueue-event で発生させていますが、 handle-event だと、NullDereferenceExceptionが出てしまいます。 理由は分かりません。 |
|||||
07-29-2011, 01:53 PM,
|
|||||
|
|||||
RE: Enterキーでのフォーカス遷移
(07-28-2011, 05:13 PM)umemura Wrote: ちなみに、キープレスのイベントをenuqueue-event で発生させていますが、 handle-eventを使えば、直接フォーカスが変わって、 Enterの残っているハンドリングがおかしくなります。 上の書いている方法は少し危険です、下の様に、イベントの流れがあれば。 [queue] enter -> 'a' ユーザーは(移動)、('a'の入力)を期待しているでしょう。 ですが、enqueueすれば、こうなります。 [queue] enter -> 'a' -> tab 'a'が最初セルに入ってしまいます。 安全方法には、OpenControlsを使って、 SkinnableRecordGridUI.on-key-press-aux と SkinnedSRGTextFieldFeel.on-key-press を書き換えるしかないかもしれません。 そこまでしなくてもいい可能性があるけど、他の設定によるんでしょう。 残念ですが今の時点ではちょっと困難なところです。 |
|||||
« Next Oldest | Next Newest »
|
Users browsing this thread:
1 Guest(s)
1 Guest(s)