Как я могу настроить строку Regex для TextMesh Pro InputField, когда она была настроена на использование Regex?

Я настроил его на использование Regex с помощью

inputfield.characterValidation = TMPro.TMP_InputField.CharacterValidation.Regex;

Но я не могу узнать, где установить указанную строку Regex.

Благодарность

1
akaBase 12 Апр 2019 в 14:16

2 ответа

Лучший ответ

Это значение должно быть установлено с помощью редактора.
Переменная, которую вы ищете - TMP_InputField.m_RegexValue, но она помечена как закрытая. Кажется, не существует набора или определения вне функциональности редактора.

Вы можете определить пользовательский валидатор, используя TMP_InputValidator, или вы можете подключиться к .onValidateInput, совместно используемому как в TMP, так и в Unity для InputField, как указано в этом тема поддержки.

0
ctwiz 15 Окт 2019 в 03:39

Для тех, кому нужно установить значение поля ввода с помощью скрипта, вы можете использовать отражение для установки значения приватной переменной.

Type inputFieldType = Type.GetType("TMPro.TMP_InputField, Unity.TextMeshPro", true, true);
System.Reflection.FieldInfo regexValueFieldInfo = inputFieldType.GetField("m_RegexValue",System.Reflection.BindingFlags.NonPublic| System.Reflection.BindingFlags.Instance);
regexValueFieldInfo.SetValue(m_InputField, "your regex here");     
1
Azebakh 11 Дек 2019 в 09:36