Unity3d NGUI避免UIInput中的换行
有没有办法避免用户在UIInputs中输入换行符 例如,不希望用户能够在用户名输入中写入换行符 我搜索了多行属性,但它似乎只存在于UILabel对象中 尝试了“验证:用户名”,但此选项不允许写入像“-”这样的字符,这是我的应用程序的有效用户名字符Unity3d NGUI避免UIInput中的换行,unity3d,line-breaks,ngui,Unity3d,Line Breaks,Ngui,有没有办法避免用户在UIInputs中输入换行符 例如,不希望用户能够在用户名输入中写入换行符 我搜索了多行属性,但它似乎只存在于UILabel对象中 尝试了“验证:用户名”,但此选项不允许写入像“-”这样的字符,这是我的应用程序的有效用户名字符 谢谢 必须检查UIInput.cs文件才能知道如何忽略换行符,我发现: case KeyCode.KeypadEnter: { ev.Use(); bool ne
谢谢 必须检查UIInput.cs文件才能知道如何忽略换行符,我发现:
case KeyCode.KeypadEnter:
{
ev.Use();
bool newLine = (onReturnKey == OnReturnKey.NewLine) ||
(onReturnKey == OnReturnKey.Default &&
label.multiLine && !ctrl &&
label.overflowMethod != UILabel.Overflow.ClampContent &&
validation == Validation.None);
if (newLine)
{
//Insert("\n");
}
else
{
UICamera.currentScheme = UICamera.ControlScheme.Controller;
UICamera.currentKey = ev.keyCode;
Submit();
UICamera.currentKey = KeyCode.None;
}
return true;
}
因此,为了避免换行,您需要执行以下操作:
UILabelObject.multiLine = false;
UIInputObject.onReturnKey = UIInput.OnReturnKey.Default;
这样,bool newLine将变为false并执行Submit()
通过在UILabel上将Max Lines属性设置为1,同样可以将输入字段限制为一行
是的,我发现这是最好的解决方案!谢谢