NGUI избегает разрыва строки в UIInput

Есть ли способ запретить пользователям вводить разрывы строк в UIInputs?

Например, не нужно, чтобы пользователь мог писать разрывы строк при вводе имени пользователя.

Я искал многострочный атрибут, но кажется, что он существует только в объектах UILabel.

Пробовал «проверка: имя пользователя», но эта опция не позволяет писать такие символы, как «-», что является допустимым символом имени пользователя моего приложения.

Спасибо!


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


Ответы (2)


Аналогичным образом вы можете ограничить поле ввода одной строкой, установив для свойства Max Lines значение 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 становится ложным и выполняет Submit();

person Kane    schedule 22.10.2014