Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix issue when inserting text at 0 when maxLength is set
Summary: 1. The user inserts a character ('0') at index 0. Because the range matches 0, 0, predictedText is set to that character that was inserted. 2. In textInputDidChange, it discovers a mismatch between the rendered text ('1234') and predicted text ('0') 3. This triggers textInputShouldChangeTextInRange to be called again with the 'new' text that it thinks was just added ('1234') 4. It goes to insert this text, but runs into the maxLength limit, so it gets truncated and then inserted. (I'm not totally sure why only happens if maxLength is set - I need to look into that.) One fix for this is to just get rid of the range check, but that'll regress #18374. I decided to just check and see if the rendered text is empty instead of checking the range where text could be inserted, since that seems like it should properly handle both cases. Reviewed By: shergin Differential Revision: D10392176 fbshipit-source-id: 84fb3b6cac9b0aa25b3c1a127d43f9cdc5a1c6a8
- Loading branch information