- Home /
When running a build, TextArea writes backwards and TextField only writes one character. Why?
When running in the editor, my textfields work perfectly fine, but when I build and run the scene it doesn't work correctly.
Using a TextField, I see that it's constantly selecting the last character you entered, so it gets replaced with whatever character you enter, and it keeps doing that. This leads to it only ever letting you write one letter.
Using a TextArea, I see the cursor is constantly in front of the last character you entered, so the next character will be written before it. This leads to everything you write coming out backwards.
I've searched around for answers to why this happens, and I found one related question for the TextField that didn't actually have an answer (because their problem was really elsewhere), and another related question on the TextArea, but that was claimed to have been fixed years ago.
I'm not doing anything fancy code-wise. The following is my field code, located within a switch-case under OnGUI:
tf = GUI.TextField(new Rect(270f,100f,150f,25f),tf);
The variable tf is defined at the top of the class:
public string tf = "";
Now, I did just find a band-aid that will let me continue:
TextEditor te = (TextEditor)GUIUtility.GetStateObject(typeof(TextEditor), GUIUtility.keyboardControl);
te.SelectNone();
te.MoveLineEnd();
But it's not optimal, since it means the text that is entered is no longer selectable. Does anyone have an idea of what's happening here?
Your answer
![](https://koobas.hobune.stream/wayback/20220613171116im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
making bold word or coloured letter in a string, 2 Answers
Help! Iphonekeyboard has only number appear in textfield 0 Answers
Using GUI.FocusControl on TextField selects all text 4 Answers
Use specific TouchScreenKeyboardType for different text fields 3 Answers
How to speed up TextField input? 0 Answers