Version: 2021.3

EditorGUI.FocusTextInControl

切换到手册
public static void FocusTextInControl (string name);

参数

name 使用 GUI.SetNextControlName 设置的名称。

描述

将键盘焦点移动到指定的文本字段,并开始编辑内容。

在 Editor GUI 中,文本字段可以获得键盘焦点但不编辑文本。例如,您可以使用向上和向下箭头键在文本字段或其他控件之间切换焦点。在文本字段内单击后,开始编辑文本本身,然后使用箭头键导航文本内容。EditorGUI.FocusTextInControlGUI.FocusControl 类似,可为控件提供键盘焦点,但它也会开始编辑文本本身。

另请参阅:GUI.SetNextControlNameGUI.GetNameOfFocusedControl

using UnityEngine;
using UnityEditor;

public class Example : EditorWindow { // When pressed the button, selects the "username" Textfield. string username = "username"; string pwd = "a pwd"; void OnInspectorGUI() { // Set the internal name of the textfield GUI.SetNextControlName("MyTextField");

// Make the actual text field. username = EditorGUI.TextField(new Rect(10, 10, 100, 20), username); pwd = EditorGUI.TextField(new Rect(10, 40, 100, 20), pwd);

// If the user presses this button, keyboard focus will move. if (GUI.Button(new Rect(10, 70, 80, 20), "Move Focus")) { EditorGUI.FocusTextInControl("MyTextField"); } } }