Libgdx Native TextInput จำกัดความยาวของข้อความ

ฉันกำลังเขียนเกมโดยใช้ Libgdx ฉันใช้สิ่งที่แนะนำไว้ที่นี่ เพื่อจัดการแป้นพิมพ์เสมือนเมื่อผู้ใช้ป้อนชื่อผู้เล่น มันใช้งานได้จริงเหมือนมีเสน่ห์ อย่างไรก็ตาม หากผู้ใช้ป้อนอักขระมากกว่า 8 ตัวในช่องชื่อ การออกแบบ UI ของเกมของฉันจะหยุดชะงัก ดังนั้นฉันจึงต้องการป้องกันไม่ให้ผู้ใช้ป้อนอักขระเกิน 8 ตัว

TextField มีเมธอด setMaxLength ตามที่กำหนดไว้ที่นี่ หากฉันตั้งค่านี้เป็น 8 ไม่ว่าผู้ใช้จะป้อนอะไรก็ตาม อักขระ 8 ตัวแรกจะถูกใส่ในช่องข้อความของฉัน แต่นี่เป็นเรื่องที่น่ารำคาญและทำให้เข้าใจผิดเนื่องจากผู้ใช้สามารถป้อนได้ เช่น สมมติว่ามีอักขระ 20 ตัวโดยไม่รู้ว่าจะใช้เพียง 8 ตัวแรกเท่านั้น

ดังนั้น คำถามของฉันคือ มีกลไกในการหยุดผู้ใช้ป้อนอักขระมากกว่า 8 ตัวหรือไม่ แม้ว่าฉันจะใช้วิธีการจัดการอินพุต TextField แบบ "ดั้งเดิม" ก็ตาม

ขอบคุณล่วงหน้า.


person Alp    schedule 20.07.2015    source แหล่งที่มา


คำตอบ (1)


ฉันทดสอบสิ่งนี้ก่อนที่จะพิมพ์ถึงคุณ ดังนั้นฉันจึงรู้ว่ามันได้ผล โค้ดด้านล่างจะทำให้ช่องข้อความของคุณอนุญาตให้คุณป้อนอักขระ 8 ตัวลงในวิดเจ็ต TextField เท่านั้น โปรดระวังด้วย อักขระบางตัวมีขนาดใหญ่กว่า (ความยาว) มากกว่าตัวอื่นๆ ( ตัวอักษรเช่น - are short )

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