2015-07-20 4 views
3

Я пишу игру с использованием Libgdx. Я использовал what was suggested here для обработки виртуальной клавиатуры, когда пользователь вводит имена игроков. Это действительно работает как шарм. Однако, если пользователь вводит более 8 символов в поле имени, он нарушает дизайн пользовательского интерфейса моей игры. Поэтому я хочу, чтобы пользователь не вводил более 8 символов.Libgdx native TextInput limit text Длина

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

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

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

ответ

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 

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

Удачи вам в игре!

+0

Спасибо за ваш ответ. Я попробую ваше предложение, когда смогу, и дам вам знать, будет ли это работать или сейчас. [На боковой ноте я закончил игру и опубликовал ее. Ну, это не привлекло слишком много внимания. : \ Но спасибо за ваши наилучшие пожелания в любом случае] – Alp

Смежные вопросы