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
- Main Thread stalling when loading Audio Source asset asynchronously while preloading another Audio Source asset
- Material artifacts occur in the Material Preview window when baked lighting is applied to scenes
- “ArgumentOutOfRangeException” after saving, reseting and re-add Default Tile Palette Tools to the list in Preferences window
- Package Manager Filters (Status) dropdown is different color than Packages, Sort or Add package dropdowns
- “Subscription based” option in Package Manager Filters (Status) dropdown disappears when “Update available” option is selected and dropdown is closed and opened again
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.