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 | 選択中テキストのカラーコード。 |
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.