Объявление
public static void FocusTextInControl(string name);Параметры
name | Имя задается с использованием GUI.SetNextControlName. |
Описание
Перемещает фокус клавиатуры на именованное текстовое поле и начинает редактирование содержимого.
В графическом интерфейсе редактора текстовые поля могут иметь фокус клавиатуры без редактирования текста. Например, вы можете переключать фокус между текстовыми полями или другими элементами управления с помощью клавиш со стрелками вверх и вниз. Как только вы щелкнете внутри текстового поля, начнется редактирование самого текста, а затем клавиши со стрелками будут использоваться для навигации по текстовому содержимому. EditorGUI.FocusTextInControl похож на GUI.FocusControl тем, что он передает фокус клавиатуры элементу управления, но также начинает редактирование самого текста.
Смотрите так же: GUI.SetNextControlName, GUI.GetNameOfFocusedControl.
using UnityEngine;
using UnityEditor;
public class Example : EditorWindow
{
// При нажатии кнопки выбирает текстовое поле «имя пользователя».
string username = "username";
string pwd = "a pwd";
void OnInspectorGUI()
{
//Установите внутреннее имя текстового поля
GUI.SetNextControlName("MyTextField");
// Создаем настоящее текстовое поле.
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");
}
}
}