Unity3d NGUI避免UIInput中的换行

Unity3d NGUI避免UIInput中的换行,unity3d,line-breaks,ngui,Unity3d,Line Breaks,Ngui,有没有办法避免用户在UIInputs中输入换行符 例如,不希望用户能够在用户名输入中写入换行符 我搜索了多行属性,但它似乎只存在于UILabel对象中 尝试了“验证:用户名”,但此选项不允许写入像“-”这样的字符,这是我的应用程序的有效用户名字符 谢谢 必须检查UIInput.cs文件才能知道如何忽略换行符,我发现: case KeyCode.KeypadEnter: { ev.Use(); bool ne

有没有办法避免用户在UIInputs中输入换行符

例如,不希望用户能够在用户名输入中写入换行符

我搜索了多行属性,但它似乎只存在于UILabel对象中

尝试了“验证:用户名”,但此选项不允许写入像“-”这样的字符,这是我的应用程序的有效用户名字符


谢谢

必须检查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,同样可以将输入字段限制为一行


是的,我发现这是最好的解决方案!谢谢