TextField は、ユーザーがアプリケーションにテキストデータを入力できるようにするものです。テキストの入力を受け付け、表示します。プレースホルダーテキストを設定して、ユーザーに入力のヒントや指示を与えることができます。また、入力されたデータが特定の要件を満たしていることを確認するための検証機能を追加することも可能です。
TextField を Inspector ウィンドウ内の他のフィールドに揃えるには、.unity-base-field__aligned
USS クラスを適用してください。詳細は BaseField
を参照してください。
TextField は、UI Builder、UXML、C# で作成できます。
C# で TextField を作成するには、TextField オブジェクトの新しいインスタンスを作成します。以下はその例です。
TextField myElement = new TextField("Label text");
入力テキストはデフォルトで選択可能です。selectAllOnMouseUP
や selectAllOnFocus
など、選択時の動作はカスタム化可能です。
C#では textSelection
を通じて設定します。
myElement.textSelection.selectAllOnMouseUp = false;
myElement.textSelection.selectAllOnFocus = false;
また、--unity-selection-color
USS カスタムプロパティを使用して、選択したテキストにスタイルを設定することもできます。例えば、以下の USS は、選択した入力テキストの色を黄色に設定します。
.unity-base-text-field__input {
--unity-selection-color: yellow;
}
TextField で multiline (複数行テキスト入力を可能にするプロパティ) を有効にすると、テキスト入力フィールドに縦スクロールバーを表示できます。
C# では、verticalScrollerVisibility
プロパティを ScrollerVisibility.Auto
か ScrollerVisibility.AlwaysVisible
に設定してください (以下参照)。
// Set the multiline property to true to enable multiple lines of text
textField.multiline = true;
// Set the vertical scrollbar visibility to AlwaysVisible
textField.verticalScrollerVisibility = ScrollerVisibility.AlwaysVisible;
イベント を使用して、入力テキストの動作を制御できます。
例えば、TextField の Enter および Shift + Tab キーボードイベントのデフォルト動作をオーバーライドするには、それらが TextElement
基本クラスで処理される前に KeyDownEvent を TrickleDown フェーズに登録します。
myField.RegisterCallback<KeyDownEvent>((evt) => {
if (evt.keyCode == KeyCode.Enter || evt.character == '/n')
{
// Submit logic
evt.StopPropagation();
evt.PreventDefault();
}
if (evt.modifiers == EventModifiers.Shift && (evt.keyCode == KeyCode.Tab || evt.character == '/t'))
{
// Focus logic
evt.StopPropagation();
evt.PreventDefault();
}
}, TrickleDown.TrickleDown);
C# クラス: TextField
名前空間: UnityEngine.UIElements
基本クラス: TextInputBaseField_1
この要素は以下のメンバー属性を持ちます。
名前 | 型 | 説明 |
---|---|---|
multiline |
boolean |
テキストフィールドに複数行を許可する場合は true を、そうでない場合は false を設定します。 |
value |
string |
フィールドが現在公開している文字列。 これを変更しても Change イベントの送信はトリガーされません。 |
この要素は基本クラスから以下の属性を継承します。
名前 | 型 | 説明 |
---|---|---|
auto-correction |
boolean |
タッチスクリーンキーボードの自動修正のオン/オフを設定します。 |
binding-path |
string |
バインドされるべきターゲットプロパティのパス。 |
focusable |
boolean |
要素がフォーカス可能である場合は true。 |
hide-mobile-input |
boolean |
モバイル入力フィールドの非表示/表示。 |
is-delayed |
boolean |
true に設定すると、ユーザーが Enter キーを押すか、テキストフィールドのフォーカスが失われるまで、value プロパティは更新されません。 |
keyboard-type |
TouchScreenKeyboardType |
使用されるモバイルキーボードのタイプ。 |
label |
string |
フィールドの横に表示されるラベルを表す文字列。 |
max-length |
int |
フィールドの最大文字数。 |
tabindex |
int |
フォーカスリング内でフォーカス可能なものをソートするために使用される整数。0 以上であることが必要です。 |
value |
string |
フィールドに関連付けられた値。 |
この要素は、VisualElement
から以下の属性も継承します。
名前 | 型 | 説明 |
---|---|---|
content-container |
string |
子要素はそれに追加されますが、通常は要素自体と同じです。 |
name |
string |
この VisualElement の名前。 このプロパティを使用して、特定の要素を対象とする USS セレクターを記述します。要素には一意の名前を付けるのが標準的です。 |
picking-mode |
UIElements.PickingMode |
mouseEvents または IPanel.Pick クエリの間にこの要素を選択 (ピック) できるかどうかを決定します。 |
style |
string |
この要素のスタイルオブジェクトへの参照。 C# でこのオブジェクトに書き込まれた USS ファイルまたはインラインスタイルから計算されたデータが含まれます。 |
toolbar |
string |
ユーザーが要素をマウスオーバーした後、わずかな時間、情報ボックス内に表示するテキスト。これはエディター UI でのみサポートされます。 |
usage-hints |
UIElements.UsageHints |
VisualElement の高レベルの使用パターンを指定するヒント値の組み合わせ。このプロパティは、VisualElement がまだ Panel の一部でない場合にのみ設定できます。Panel の一部になると、このプロパティは事実上読み取り専用となり、変更しようとすると例外がスローされます。適切な UsageHints を指定することで、予想される使用パターンに基づいて、特定の操作をどのように処理するか、または高速化するかについて、システムがより適切な判断を下すようになります。これらのヒントは動作や視覚的な結果には影響しませんが、パネルとその中の要素の全体的なパフォーマンスにのみ影響することに注意してください。常に適切なUsageHints を指定することを考慮することをお勧めしますが、特定の条件下 (例えば、ターゲットプラットフォームのハードウェア制限など) では、いくつかの UsageHints が内部的に無視される可能性があることに留意してください。 |
view-data-key |
string |
ビューデータの永続性 (ツリーの展開状態、スクロール位置、ズームレベルなど) に使用されます。 これは、ビューデータストアからビューデータを保存/ロードするために使用されるキーです。このキーを設定しないと、この VisualElement の永続性が無効になります。 |
以下の表は、すべての C# パブリックプロパティ名と、それに関連する USS セレクターのリストです。
C# プロパティ | USS セレクター | 説明 |
---|---|---|
ussClassName |
.unity-text-field |
この型の要素の USS クラス名。 |
labelUssClassName |
.unity-text-field__label |
この型の要素のラベルの USS クラス名。 |
inputUssClassName |
.unity-text-field__input |
この型の要素の入力要素の USS クラス名。 |
ussClassName |
.unity-base-text-field |
この型の要素の USS クラス名。 |
labelUssClassName |
.unity-base-text-field__label |
この型の要素のラベルの USS クラス名。 |
inputUssClassName |
.unity-base-text-field__input |
この型の要素の入力要素の USS クラス名。 |
singleLineInputUssClassName |
.unity-base-text-field__input--single-line |
このタイプの要素の 1 行入力要素の USS クラス名。 |
multilineInputUssClassName |
.unity-base-text-field__input--multiline |
このタイプの要素の複数行入力要素の USS クラス名。 |
ussClassName |
.unity-base-field |
この型の要素の USS クラス名。 |
labelUssClassName |
.unity-base-field__label |
この型の要素のラベルの USS クラス名。 |
inputUssClassName |
.unity-base-field__input |
この型の要素の入力要素の USS クラス名。 |
noLabelVariantUssClassName |
.unity-base-field--no-label |
ラベルがない場合の、この型の要素の USS クラス名。 |
labelDraggerVariantUssClassName |
.unity-base-field__label--with-dragger |
この型の要素にドラッガーがアタッチされている場合のラベルの USS クラス名。 |
mixedValueLabelUssClassName |
.unity-base-field__label--mixed-value |
混合値を示す要素の USS クラス名 |
alignedFieldUssClassName |
.unity-base-field__aligned |
インスペクター要素で整列される要素の USS クラス名 |
disabledUssClassName |
.unity-disabled |
ローカルで無効にされた要素の USS クラス名。 |
以下の表は、USS の TextField 要素にのみ利用可能なカスタムプロパティの説明です。
プロパティ | タイプ | 説明 |
---|---|---|
--unity-cursor-color |
string | テキストのキャレットのカラーコード。 |
--unity-selection-color |
string | 選択中テキストのカラーコード。 |