Libgdx собственный TextInput ограничивает длину текста

Я пишу игру, используя Libgdx. Я использовал то, что было предложено здесь для обработки виртуальной клавиатуры, когда пользователь вводит имена игроков. Это на самом деле работает как шарм. Однако, если пользователь вводит более 8 символов в поле имени, это нарушает дизайн пользовательского интерфейса моей игры. Поэтому я хочу запретить пользователю вводить более 8 символов.

TextField имеет метод setMaxLength как определено здесь. Если я установлю это значение равным 8, независимо от того, что вводит пользователь, первые 8 символов помещаются в мое текстовое поле. Но это немного раздражает и вводит в заблуждение, потому что пользователь все еще может ввести, скажем, 20 символов, не зная, что будут использоваться только первые 8.

Итак, мой вопрос заключается в том, существует ли механизм, запрещающий пользователю вводить более 8 символов, даже если я использую «собственный» способ обработки ввода TextField.

Заранее спасибо.


person Alp    schedule 20.07.2015    source источник


Ответы (1)


Я проверил это прямо перед тем, как написать вам, поэтому я знаю, что это работает. Приведенный ниже код сделает так, что ваше текстовое поле позволит вам ввести только 8 символов в виджет TextField. Однако будьте осторожны, некоторые символы больше (по длине), чем другие (символы типа - короткие).

textField.setMaxLength(8);  // Maximum chars will be 8
textField.setAlignment(1);  // If you wanted to center the text
                            //     (1 = Center, 2 = Right Align)

С другой стороны, если вы добавляете TextField в таблицу, вы можете изменить видимую ширину виджета.

table.add(textField).width(50);  // I believe this is in pixels

Вы действительно не дали мне многого, чтобы уйти (без кода), поэтому я надеюсь, что этот ответ поможет вам.

Желаем удачи в вашей игре!

person Community    schedule 14.04.2017
comment
Спасибо за ответ. Я попробую ваше предложение, когда смогу, и дам вам знать, работает ли оно сейчас. [Кстати, я закончил игру и опубликовал ее. Ну, это не привлекло особого внимания. :\ Но все равно спасибо за наилучшие пожелания ] - person Alp; 23.05.2017