【Filemaker】マウスを使わずに操作できるようにしてみた(解説編)その2


ファイルメーカーでキーボードだけで操作する件(解決編・その1)の続き。
標準でフォーカスを移動させるにはタブ(tab)、エンター(enter)キー。
しかし、リストやポータルで上下のレコードにフォーカスを移動させるにはタブ、エンターでは不可能。リストではコントロール(control)+上(↑)または下(↓)。
これを、タブと上下左右だけでフォーカスを移動させたかった。

しかし、全てのオブジェクトに トリガーキーの設定をするのはキツイ。

例えばタブキーで標準で移動するフィールド、矢印キーで標準で移動するボタンバーの挙動はそのまま使いたい。この、標準の挙動とカスタマイズした挙動を共存させる方法を考えてみた。

<例>
  1. レイアウトのリスト(レコード一覧)で、矢印キーなどでレコード間の移動やボタン間の移動といった挙動をさせるには、レイアウト設定のOnLayoutKeystrokeイベントで引っ掛ける。
  2. さらに、レイアウト上にあるポップオーバー上のボタンバーには、標準の動き(矢印キー)をさせたいので、ボタンバーにはOnLayoutKeystrokeイベントは定義しない。
  3. しかしこれだと、ポップオーバー上のボタンバーで矢印キーを押すと、レイアウトに定義したOnLayoutKeystrokeイベントに引っかかってしまう。つまり標準の動きができない。
  4. これを解決するには、キーが押された時にフォーカスが当たった(標準の動きをさせたい)オブジェクトにオブジェクト名を付けておき、OnLayoutKeystrokeイベントの先頭で、Get(アクティブレイアウトオブジェクト名) を実行して、値が設定されていたら、(標準の動きをさせるために)OnLayoutKeystrokeイベントのスクリプトを終了する。

0 件のコメント:

コメントを投稿