Navigation Manipulator を使用する

Navigation Manipulator を使用して、ユーザーがアプリケーション内の異なる方向に移動するために使用できるキーを設定します。

デフォルトの方向ナビゲーションキー

これらは、Kanzi アプリケーションでユーザーが使用できるデフォルトの方向キーです。

  • Slider ノードは Focusable プロパティが有効になっており、デフォルトでフォーカスを受け取ることができます。Slider ノードにフォーカスがある場合、そのスライダーのノブを動かすには、次のデフォルトのキーボードキーを使用できます。

    • スライダーのノブをレールの始点に移動するには、Home

    • スライダーのノブをレールの端まで移動するには、End を使用します。

    • ← と → を使用して、水平スライダーのノブを移動します。

    • ↑ と ↓ を使用して、垂直スライダーのノブを移動します。

    スライダーノブを矢印キーで移動させるには、その Slider ノードで、各キー押下時にノブが移動する量を Step Value プロパティで設定します。

  • Kanzi Studio で作成する Scroll View ノードは、Focusable プロパティが有効になっており、デフォルトでフォーカスを受け取ることができます。Scroll View ノードがフォーカスを持っているとき、そのノードをスクロールするには、デフォルトのキーボードキー ←、→、↑、および ↓ を使用できます。

  • Grid List Box ノードにフォーカスがある場合、デフォルトで次のキーボードキーを使用できます。

    • ↑ と ↓ を使用して、縦型リストボックス内のリストアイテムをスクロールします。

    • → と ← を使用して、水平リストボックス内のリストアイテムをスクロールします。

    • Home が最初のリストアイテムを選択する

    • End が最後のリスト項目を選択します。

    • Page Up と Page Down をリストボックスの表示領域の始まりと終わりに移動する

  • Text Box ノードが編集状態にあるとき、そのテキストボックス内でカーソルを移動するには、次のデフォルトのキーボードキーを使用できます。

    • ← でカーソルを1文字後ろに移動します。

    • → はカーソルを1文字前に移動します。

    • Ctrl ← は、カーソルをカーソルの前にある単語の境界に移動します。

    • Ctrl → は、カーソルをカーソルの後に続く単語の境界に移動します。

    • Home はテキストコンテンツの先頭にカーソルを移動します。

    • End はテキストコンテンツの末尾にカーソルを移動します。

    Text Box ノードが編集状態にあるとき、そのテキストボックス内のテキスト選択を変更するには、次のデフォルトのキーボードキーを使用できます。

    • Shift ← は、テキスト選択内のアクティブカーソルを1文字後ろに移動します。

    • Shift Ctrl は、テキスト選択内のアクティブカーソルを現在の位置に先行する単語の境界に移動します。

    • Shift Home は、テキスト選択内のアクティブカーソルをテキストコンテンツの先頭に移動します。

    • Shift → は、テキスト選択内のアクティブカーソルを1文字前に移動します。

    • Shift Ctrl → は、テキスト選択内のアクティブカーソルを現在の位置に続く単語の境界に移動します。

    • Shift End を使用して、テキスト選択内のアクティブカーソルをテキストコンテンツの末尾に移動します。

    • Ctrl A で全てのテキストを選択します。

Navigation Manipulator トリガーを使用する

Navigation Manipulator トリガーを使用して、ユーザーが方向ナビゲーションキーのジェスチャーを開始、終了、またはキャンセルしたときに反応します。たとえば、特定のキーを使用して、ユーザーがキーのフォーカスを特定の方向に移動できるようにすることができます。

Navigation Manipulator には次のトリガーがあります。

  • Key Navigation Started トリガーは、Kanzi がナビゲーションキーのキー押下またはキーリピートジェスチャーを認識したときに発動します。

    例えば、これはユーザーがキーボードのナビゲーションキーを押したときに発生します。

  • Key Navigation Finished トリガーは、Kanzi がナビゲーションキーのキーリリースジェスチャーを認識したときに発動します。

    例えば、これはユーザーがキーボードのナビゲーションキーを離したときに発生します。

  • Key Navigation Canceled トリガーは、Kanzi がナビゲーションキーのキー押下ジェスチャーのキャンセルを認識したときに発動します。

Navigation Manipulator トリガーを使用するには:

  1. Navigation Manipulator を作成して構成する:

    1. Node Tree または Prefabs で、キーからの方向ナビゲーション入力を受け取るフォーカス可能なノードを選択します。フォーカスの使用 を参照してください。

      これらのノードは Focusable プロパティが有効になっており、デフォルトでフォーカスを受け取ることができます。

      • Kanzi Engine APIまたは Kanzi Studio を使用して作成する Button、Toggle Button、Slider、および Text Box ノード。

      • Kanzi Studio を使用して作成する Scroll View ノード。

      例えば、Prefabs で垂直に積み重ねられたメニューボタンのグループをインスタンス化するために使用するプレハブを選択します。デフォルトで、Tab キーを押すとボタン間のフォーカスを前方向に移動でき、Shift Tab キーを押すと後方向に移動できます。フォーカスチェイン内でフォーカスを移動する と ユーザーインターフェース要素にフォーカスがあることを表示する を参照してください。

      ../../_images/menu-button-in-prefabs.png ../../_images/navigation-manipulator-default-nav.gif
    2. Node Components Alt を押しながら右クリック Input Manipulators で、Navigation Manipulator を選択します。

      Navigation Manipulator を使用して、ノードが1つ以上のキーからの方向ナビゲーション入力に反応するように設定します。

      ../../_images/add-navigation-manipulator.png
    3. Navigation Manipulator に、ノードが反応するキーを設定するために、1つ以上のナビゲーションキーのプロパティを追加して設定します。

      例えば、ユーザーが上下にナビゲートするためのキーを設定するには、Up Navigation Key プロパティと Down Navigation Key プロパティを追加して設定します。

      ../../_images/navigation-manipulator-up-down-keys.png
  2. Navigation Manipulator で前のステップで設定したナビゲーションキーのトリガーを作成して構成します。

    1. Node Components で Navigation Manipulator トリガーの1つを作成します。

      例えば、Node Components Alt を押しながら右クリック Triggers で、Message Trigger > Key Input > Key Navigation Started を選択し、トリガーに名前を付けます。

      ../../_images/create-key-navigation-started-trigger.png ../../_images/down-navigation-trigger.png
    2. Navigation Manipulator で複数のナビゲーションキーのプロパティを設定する場合、トリガー条件を使用して、作成したトリガーを起動するナビゲーションキーを設定してください。

      Node Components Alt を押しながら右クリック のトリガーで、Trigger Condition を選択し、条件を設定します:

      • A

        • Type of A から Message argument へ

        • Message Argument から Navigation Direction へ

      • Operation から = へ

      • B

        • Type of B から Fixed へ

        • トリガーが反応するナビゲーションキーのナビゲーション方向に Fixed Value を設定します。

          例えば、Navigation Manipulator で設定したキーをユーザーが押したときにトリガーを発動させたい場合、Down Navigation Key プロパティを使用して、Fixed Value を Down に設定します。

      ../../_images/down-navigation-create-trigger-condition.png ../../_images/navigation-direction-down-condition.png
    3. Node Components Alt を押しながら右クリック で作成したトリガーを使用し、Navigation Manipulator で設定したナビゲーションキーをユーザーが押したときにトリガーが実行するアクションを選択します。

      例えば、Move Focus アクションを選択し、アクション設定で Direction を Forward に設定します。

      このアクションは、フォーカスチェーン内の次のノードにフォーカスを前方向に移動します。これは、ユーザーが Tab キーを押したときにフォーカスが移動する方法と同様です。

      ../../_images/down-navigation-create-move-focus-action.png ../../_images/move-focus-action.png

    ユーザーが Navigation Manipulator で設定したキーを押すと、Key Navigation Started トリガーが作成したアクションを開始します。

    この例では、ユーザーが Navigation Manipulator の Down Navigation Key プロパティで設定した ↓ (Arrow down) キーを押すと、フォーカスが次のメニューボタンに前方向に移動します。

    ../../_images/navigation-manipulator-directional-nav-down.gif
  3. 前の手順を繰り返して、別の Navigation Manipulator トリガーを作成し、設定します。

    例えば、別の Key Navigation Started トリガーを作成し、そのトリガー内で以下を作成します。

    • Trigger Condition は、Up Navigation Key プロパティを使用して Navigation Manipulator で設定したキーをユーザーが押したときにトリガーを発動するように設定します。

    • Direction を Backward に設定する Move Focus アクション。

    この例では、ユーザーが Navigation Manipulator の Up Navigation Key プロパティで設定した ↑ (Arrow up) キーを押すと、フォーカスが逆方向に次のメニューボタンに移動します。

    ../../_images/up-navigation-trigger.png ../../_images/navigation-manipulator-directional-nav-up.gif

Navigation Manipulator でさらに多くのナビゲーションキーを設定し、ユーザーがそれらのキーを押したときに何が起こるかを定義するトリガーを作成できます。

例えば、Navigation Manipulator で End Navigation Key プロパティを設定し、Key Navigation Started トリガーを作成して、ユーザーが End キーを押したときにグループ内の最後のボタンにフォーカスを設定する Try Set Focus アクションを作成します。

../../_images/end-navigation.png ../../_images/navigation-manipulator-directional-nav.gif

APIでナビゲーションマニピュレータを使用する

詳細については、NavigationManipulator クラスを参照してください。

関連項目

ユーザー入力の処理

フォーカスの使用

Key Manipulator を使用する

トリガーの使用

チュートリアル: アプリケーションのUIナビゲーションを作成する