iOS: replace custom `UITextInput` with a native `UITextView` (#1121)
* iOS: replace custom `UITextInput` with a native `UITextView` `UITextView` is a full system-native keyboard client, so we get all the major features for free: language HUD pill and the complete globe/Ctrl+Space shortcut to cycle between IMEs/languages. Makepad basically just mirrors the state of the system native text view, via the `full_state_sync`, but the actual native text view is kept invisible so it doesn't interfere with what we render in Makepad's TextInput. Notably, the Full Keyboard Accessibility setting now does work properly, whereas it did not before with our UITextInput-based approach. We also make sure that arrow keys, nav keys, auto-repeat, and modifiers are properly hanlded so we can retain the expected kbd shortcuts, like other desktop platforms. * iOS: remove the old `UITextInput` connection with the Makepad TextInput We've now switched to the native UITextview, so we don't need this any more. * iOS: fix desync during fast typing Ensure there's no race between the native UITextView and Makepad's TextInput, as the Enter/REturn key needs special handling w.r.t. how `pressesBegan` gets it (From a real hardware kbd). * TextInput: more iOS integration, and text input types more native integration for things like username/password, new password fields, email, address, URLs, etc. These tell iOS to change the keyboard layout/type for the text input. * iOS: don't let Full Keyboard Access focus on our hidden native cursor * cleanup * iOS/TextInput: fix perf issues * iOS TextInput: more fixes for read-only efficiency, and filtered input Also port some of these fixes to Android's IME integration layer * iOS/TextInput: hide the native caret iOS draws during autocorrect but still allow the "decline autocorrect" bubble to popup where that hidden caret is located (and the CJK candidate window in the same spot)
K
Kevin Boos committed
bc13b891e58d512fb7bf1d319276fae74931ce7e
Parent: 4f1f545
Committed by GitHub <noreply@github.com>
on 6/12/2026, 7:12:26 AM