ガイド
キーボード / タッチ操作
グリッド本体・編集エディタのキーバインド一覧と、スマホ / タブレットでのタッチ操作
グリッド本体フォーカス中(編集中でない)の操作一覧です。フィルター入力などのフォーム要素にフォーカスしている間は無効です。
グリッド本体
| キー | 操作 |
|---|---|
矢印(+ Shift で範囲拡張)/ Tab / Shift+Tab | アクティブセル移動 |
Enter / F2 / 印字キー直打ち | 編集開始(印字キーはその 1 文字を初期値に) |
Escape | 選択解除 |
Ctrl/Cmd+C | 選択範囲を TSV でコピー |
Ctrl/Cmd+V | アクティブセル起点で貼り付け(readOnly では no-op) |
Ctrl/Cmd+A | 全体選択(2 回目で解除) |
Delete / Backspace | 選択セルの値クリア(編集不可セルは対象外) |
Ctrl/Cmd+Z / Ctrl/Cmd+Shift+Z / Ctrl/Cmd+Y | undo / redo |
編集エディタ内
| キー | 操作 |
|---|---|
Enter | 確定して下のセルへ(移動先は editorEnterMove で変更可) |
Tab / Shift+Tab | 確定して右 / 左のセルへ |
Escape | キャンセル |
| フォーカスアウト | 確定(select エディタのみキャンセル) |
Enter 確定後の移動先は editorEnterMove prop で変更できます('down'(既定)/ 'up' / 'right' / 'left' / 'none'。Excel の「Enter キーを押したら、セルを移動する(方向)」相当。Tab / Shift+Tab には影響しません)。
確定後の移動先は「確定を反映した再レンダー後」の行数でクランプされます。onRowsChange で末尾に空行を追加する実装(Excel 的な入力グリッドの定石)では、最終行の Enter 確定でそのまま増えた行へ進めます。
IME(日本語入力)
IME 変換中(isComposing)の Enter / Escape / Tab は IME の操作としてのみ扱われ、セル編集の確定・キャンセルには使われません。変換確定の Enter でセルが誤確定することはありません。
グループ行(行グルーピング有効時)
| キー | 操作 |
|---|---|
Enter / Space | グループの開閉 |
タッチ操作(スマホ / タブレット)
タッチ端末(pointerType === 'touch')では、ドラッグをブラウザのスクロールに譲る設計です。マウスの「押した瞬間に選択開始 → ドラッグで範囲拡張」は行わず、タップで確定します。
| 操作 | 動作 |
|---|---|
| セルをタップ | アクティブセル + 単一セル選択 |
| 同じセルを素早く 2 回タップ(300ms 以内) | 編集開始(ダブルクリック相当。dblclick を発火しないブラウザでも動作) |
| スワイプ | 縦横スクロール(範囲選択にはなりません) |
| 行番号をタップ | 行全体を選択(enableRowSelection 時はチェックボックス行選択) |
| 列ヘッダーをタップ | 列全体を選択 |
列ヘッダーの ⋮ をタップ | 列メニュー(フィルター / ソート / 固定 / 表示…)。タッチ端末では ⋮ を常時表示します |
補足:
- 範囲選択(複数セル)はタッチでは行えません。
Shift+タップのソートも修飾キーがないため対象外です(列メニューから操作してください)。 - 列幅の変更(境界の把手)/ 列の並べ替え(grip)はタッチでもドラッグできますが、把手が小さいため補助的な操作です。
- セルのコンテキストメニュー(右クリック)はタッチの長押しには対応していません(ブラウザが長押しを
contextmenuとして発火する環境では開きます)。 - グリッド root には
touch-action: manipulationを当てており、セル上のダブルタップがブラウザのズームに奪われません(パン / ピンチズームは有効のまま)。
試すにはセル編集とバリデーションやソートとフィルターのデモをどうぞ。