How to detect a backspace press on an empty Flutter TextField in an OTP input
onChanged never fires because no edit happens, and on iOS the engine's deleteBackward returns without touching anything when the field is empty. Two approaches that actually work on every platform: a zero-width sentinel that guarantees an edit, and a single EditableText behind painted cells. Verified on Flutter 3.47.2 / Dart 3.13.2.