当设置为使用Regex时,如何设置TextMesh Pro InputField的Regex字符串?
我已将其设置为使用正则表达式,使用
inputfield.characterValidation = TMPro.TMP_InputField.CharacterValidation.Regex;
但是无法找出在哪里设置所说的Regex字符串。
谢谢
答案 0 :(得分:1)
对于需要通过脚本设置输入字段值的用户,可以使用反射来设置私有变量值。
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 :(得分:0)
此值必须通过编辑器设置。
您要查找的变量为TMP_InputField.m_RegexValue
,但已标记为私有。在“编辑器”功能之外似乎没有设置或定义。
您可以使用TMP_InputValidator
定义自定义验证器,也可以按照support thread的建议将TMP和Unity本机InputField共享的.onValidateInput
挂钩。