Search Issue Tracker
By Design
Votes
0
Found in [Package]
4.0.0-pre.2
Issue ID
TMPB-207
Regression
No
Printed text of the TextMeshPro input field is missing the last symbol and the length is one symbol longer
How to reproduce:
1. Open the user’s attached “testdatapersistence.zip” project
2. Enter Play Mode
3. In the input field insert “testing”
4. Observe the Console window
Expected result: “Name : testing : length 7” is printed
Actual result: “Name : testin : length 7” is printed
Reproducible with: 3.0.6, 3.2.0-pre.4 (2021.3.28f1), 4.0.0-pre.2 (2022.3.4f1, 2023.1.3f1, 2023.2.0a23)
Reproduced on: macOS 13.2.1 (Intel)
Notes:
If pressing the delete key when there’s no text in the input field then the printed length is 1
Not reproducible with legacy input field
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- [Dragon Crashers] Build fails in U6
- [Dragon Crashers] 4 Shader error messages on import
- [Dragon Crashers] Readme text is white on light grey
- Cursor stays in front of the first character when entering text in the TextMeshPro field
- Searching in Hierarchy causes unwanted component calls
Resolution Note:
The "OnValueChanged" event for TextMeshPro InputField is triggered before the new value is fully processed.
The suggested workaround is to employ a one-frame-delay coroutine for operations that require the updated text:
public void CheckNameLength()
{
StartCoroutine(DelayedCheckNameLength());
}
private IEnumerator DelayedCheckNameLength()
{
yield return null; // wait for one frame
Debug.Log($"Name : {nameInputText.text} : length {nameInputText.text.Length}");
}
As for the length of the text, this is also expected as the TMP InputField appends the ZWS unicode to handle the cursor on new lines.