В Unity3D inputField обрабатывается как заполнитель - PullRequest
0 голосов
/ 20 февраля 2020

Моя цель : Поместить значение из базы данных sqlite в поле inputField как текст. Я хочу, чтобы пользователь мог обновить запись / значение этой базы данных. По сути, я пытаюсь сделать приложение для заметок, вроде заметки на iPhone.

Моя проблема : текст отображается в поле внутри текста и в поле содержимого, включая курсор ввода / курсор. Когда пользователь нажимает на текстовое поле, оно сбрасывает все на пустое.

Что я пробовал : я создал скрипт, который изменит значение текста внутри inputField на значение, извлеченное из база данных. Текст обновляется, как и ожидалось. Затем, как только я или другие пользователи нажимают на inputField, значение исчезает, подобно тому, как работает заполнитель. Однако я хочу, чтобы значение оставалось на месте, чтобы пользователь мог его редактировать.

код:

TextMeshProUGUI contenttext =
  input1.transform.Find("Text").GetComponentInChildren<TextMeshProUGUI>();
contenttext.text = source;

Предполагается, что необходимо обновить компонент text, который является дочерним по отношению к text area, который является дочерним по отношению к contentfield. Вот до и после снимков инспектора.

1 Ответ

0 голосов
/ 20 февраля 2020

Вам необходимо установить значение в .text поле TMP_InputField, а не TextMeshProUGUI

input1.transform.Find("Text").GetComponentInChildren<TMP_InputField>().text = source;
...