NGUI избягва прекъсване на ред в UIInput

Има ли някакъв начин да се избегне потребителите да въвеждат прекъсвания на редове в UIInputs?

Не искам потребителят да може да пише нови редове при въвеждане на потребителско име, например.

Търсих многоредов атрибут, но изглежда, че съществува само в UILabel обекти.

Опитах "валидиране: потребителско име", но тази опция не позволява да се пишат знаци като "-", което е валиден знак за потребителско име на моето приложение.

Благодаря!


person Kane    schedule 21.10.2014    source източник


Отговори (2)


По подобен начин можете да ограничите полето си за въвеждане до един ред, като зададете свойството Максимални редове на 1 в UILabel.

http://www.tasharen.com/forum/index.php?topic=6752.0

person Diplomat    schedule 10.11.2014
comment
Да, разбрах, че това е най-доброто решение! Благодаря! - person Kane; 14.11.2014

Трябваше да проверя файла 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();

person Kane    schedule 22.10.2014