テキストボックス

テキストボックス（）とは、グラフィカルユーザインタフェースの基本要素の1つであり、同時にGUIプログラミングで使われる典型的なウィジェットの1つである。ユーザーがテキスト情報（プレーンテキスト）を入力するためのインタフェースとして使われる。編集不可のテキストボックスもあり、単にテキストを表示するのに使われる。編集可能なテキストボックスはエディットボックス（）と呼ばれることもある。機能を制限した簡易テキストエディタとして利用される。

典型的なテキストボックスは任意の大きさの矩形であり、他の部分との境界で区切られている。入力欄がくぼんだように見える陰影表現が付けられることが多いが、フラットデザインでは単色の境界線や色の違いだけで区別されることもある。アクティブ中は入力欄の中には点滅フォーカスがある限り、永久にキャレットの点滅を続けるものもあれば、一定時間経過すると点滅を停止するものもある。点滅にはタイマーが利用されるが、省電力の観点から特にモバイル用のウィジェットでは一切点滅しないものもある。する縦棒（キャレット）が表示され、現在のテキストが入力される位置が示されるようになっている。マウスカーソルは、テキストボックス上にあるときは、その形状を大文字のI（アルファベットのアイ）のように変えるのが一般的である（鋼材（梁）の断面の形に似ているため、同じように「」（アイビーム、I-beam）と呼ばれることもある）。

 種類 

 テキストボックス 
一般に「テキストボックス」と表現すれば下記の二種の総称を指すが、後者と区別する際の用語として前者と同義に扱われることもある。

ログインのパスワードやウィキペディアの『編集内容の要約』などの入力の状況では、キーボードを構えてスムーズに入力できるよう最初からアクティブな状態が標準になっている。

 テキストフィールド 

1行のみ入力が可能なもの。途中で改行しないゆえに、1行分の高さを持たせることが推奨されている。

通常は領域内に収まらなくなってもサイズは不変だが、下記の『キャレット位置設定とテキスト選択』操作またはスワイプでスクロールして隠れた部分の内容を確認できる。

確定後エンターキーを押すと、次のテキストフィールドがアクティブになる場合が多いが、それまでに入力された内容で遂行される場合もあり注意が必要なので、時たま問題視される。

検索ボックス、コンボボックスに採用されている。

ウェブブラウザーの自動入力機能に設定した情報のうち、各ウェブサイトのアカウント作成やお問い合わせなどのウェブページにあるテキストフィールドの要求と対応したものは、テキストフィールドのアクティブ化で設定通りの候補が表示され、選択するとキーボード操作を大幅にスキップできる。また、手動入力したテキスト情報が保管される場合がある。候補をマウスオーバーした時やその選択後に新たな文字の出入力があるまでは対象のテキストフィールドの中は青っぽく染まる。

 テキストエリア 
複数行の入力が可能なもの。改行できるゆえに、2行分以上の高さを持たせることが推奨されている。

通常は右下の角からドラッグ・アンド・ドロップでサイズ変更ができ、テキストが領域内に収まるサイズではない場合は水平／垂直スクロールバーの片方あるいは両方が付属することがある。

 標準機能 
典型的な実装では、以下のような機能がある。ショートカットキーはオペレーティングシステムなどの環境やウィジェット・ツールキットあるいはアプリケーションによって異なることもある。

 キーボードを使ったテキスト入力 
 キーを押下すると、キャレットの示す位置に文字が挿入される。非常に単純なテキストボックスあるいはパスワード入力などの特殊な用途のテキストボックスではキャレットを表示しないことがあり、その場合は表示されている文字列の末尾に、押下したキーに対応した文字が挿入される。
 タッチ入力システムではテキスト入力欄をタップすることでソフトウェアキーボードが表示される。

 キャレット位置設定とテキスト選択 
 マウスを使う場合、現在入力されている文字列中の好きな位置をマウスでクリックすることで、キャレットの位置を変更できる。そして、マウスの第1ボタンを押下したままドラッグすることで範囲選択できる。通例、選択範囲はテキストの前景色と背景色が変化（明暗が反転）する。入力欄の通常背景色が白色の場合、選択中の反転背景色には青色が使われることが多い。
 キーボードを使う場合、キャレットの位置は矢印キーで変更する。Microsoft Windows、KDE や GNOME の場合はHome/Endキーを、Mac OSの場合はCommand-左矢印/Command-右矢印を使うと、キャレットを行の先頭または最後尾に移動できる。Windows、KDE や GNOME の場合はPageUp/PageDownキーでキャレットをページ単位（テキストボックスに1度に表示できる分をページとする）で移動できる。キャレット移動の際にCtrlキーも押下すると、移動単位が大きくなる（Mac OS の場合はOptionキー）。Shiftキーを押下しながら、キーボードやマウスを操作してキャレットの位置を変更すると、その間のテキストが選択される。選択したテキストをドラッグ＆ドロップで別のテキストボックスに貼り付けること（カット／コピー＆ペースト）ができるアプリケーションもある。
 Appleプラットフォームの3D Touch対応端末では、ソフトウェアキーボード領域を指で強く押している間は一時的にフリーカーソルモードになり、タップでは難しいキャレット位置の微調整を行なうこともできる。

 テキスト編集（入力済みテキストの変更） 
 Insertキーを使って、挿入モードと上書きモードを切り換える。挿入モードでは、キャレットの右に文字があれば、新たな文字はその前に挿入される。上書きモードでは、新たな文字を入力すると、キャレットの右にある文字を置換する。テキストが選択された状態で文字を新たに入力すると、選択されたテキストを置換する。DeleteキーやBackspaceキーを押下すると、キャレット前後の文字を削除でき、同時にCtrlキーまたはCommandキーを押下すると単語単位で削除できる。クリップボードの標準的操作でテキストを編集できる。

 元に戻す／やり直し (Undo/Redo) 
 アンドゥバッファの深さは実装によって異なる。Win32 Edit Controlの場合、アンドゥバッファは1つしかない。
 Ctrl+Z/Ctrl+Y（Windows、KDE や GNOME）またはCommand-Z/Command-Shift-Z（Mac OS）

 コンテキストメニュー 
 入力欄の内部でマウスを右クリックしたり、ロングタップ（長押し）したりすることで、コンテキストメニューを表示することができる。通例、メニューには全選択、カット／コピー／ペースト、アンドゥ／リドゥなどのコマンドが含まれる。

以上は、Windows と Mac (Classic Mac OS/macOS) でのテキストボックスのキー操作である。X Window System や他のシステムでもほぼ同様なキー操作が定義されている。

 脚注 

 関連項目 
 コンボボックス
 入力
 検索
 かな漢字変換
 IME
 キーボード (コンピュータ)
 タイピング
 音声認識

Category:ウィジェット