Repository navigation
Autocorrect tooltips don't appear on iOS #12920
Description
Activity
MD doesn't seem to talk about this, so this is likely going to be cupertino specific.
https://material.io/guidelines/components/text-fields.html
Thoughts @cbracken @xster?- addeda: text inputEntering text in a text field or keyboard related problemsEntering text in a text field or keyboard related problemsplatform-iosiOS applications specificallyiOS applications specifically
on Nov 8, 2017 @eseidelGoogle iOS doesn't have autocorrect on the keyboard "modal" like Android does, so this is not MD vs Cupertino, but more like we just need it in all apps on iOS otherwise text input is very difficult.
Reacted by Dominik RoszkowskiYou know what's kind of embarrassing? I was using an iPhone 5c today and autocorrect was coming up on the keyboard. Literally never seen or noticed it before. So my apologies for my incorrect statement earlier. I'm not sure when that changed or when it displays. This was on iOS 10 btw.
- addedframeworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.p: cupertino_uicupertino_ui package in flutter/packagescupertino_ui package in flutter/packagesa: fidelityMatching the OEM platforms betterMatching the OEM platforms better
on Nov 26, 2018 - addedcustomer: crowdAffects or could affect many people, though not necessarily a specific customer.Affects or could affect many people, though not necessarily a specific customer.
on Nov 26, 2018 100 remaining items
@LongCatIsLooong, there is already a precedent for blocking call from engine to UI thread in
FlutterKeyboardManager.mm. It runs nested CFRunLoop inkMessageLoopCFRunLoopModeuntil it gets the response.Looking at the code I am wondering a bit what happens if the UI isolate gets terminated when within the inner loop. This is a bit underdocumented and I'm not 100% sure it is handled correctly.
Arguably this is playing with fire a little bit, but in this case it should be perfectly safe since the UI thread action is completely synchronous and UI thread can not do blocking calls to other threads.
We do similar thing in
super_drag_and_dropto get items forUIDragInteractionDelegateandUIContextMenuInteractionDelegate(though using FFI instead platform channel in order to make sure not to deadlock when isolate is terminated before platform code receives the response). But in our case it gets bit more complicated because the call also involves getting image data and thus waits for raster thread, which under some circumstances is blocked on platform thread. Still, it works quite well even though because of raster thread involvement we need to pump the event loop in default mode as well.But the situation here is simpler and the call to
TextInputPlugincan be synchronous, so the approach fromFlutterKeyboardManager.mmshould work just fine.Reacted by Luke Memet and Tomáš ChylýThis issue as a whole seems to have regressed with the changes introduced in iOS 17 Beta. Namely, the autocorrect “highlight rectangle” is now always highlighting the most recently entered character, regardless of whether there is an autocorrect pending or not.
RPReplay_Final1687351138.mov
- addedteam-iosOwned by iOS platform teamOwned by iOS platform teamtriaged-iosTriaged by iOS platform teamTriaged by iOS platform team
on Jul 8, 2023 - addedfyi-text-inputFor the attention of Text Input teamFor the attention of Text Input team
on Apr 4, 2024 - addedtriaged-text-inputTriaged by Text Input teamTriaged by Text Input team
on Oct 9, 2025 - removedfyi-text-inputFor the attention of Text Input teamFor the attention of Text Input teamtriaged-text-inputTriaged by Text Input teamTriaged by Text Input team
on Oct 9, 2025 - addedpackageflutter/packages repository. See also p: labels.flutter/packages repository. See also p: labels.and removedframeworkflutter/packages/flutter repository. See also f: labels.flutter/packages/flutter repository. See also f: labels.
on Aug 17, 2026
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsTodo
Steps to Reproduce
When using a native iOS app without text prediction enabled, there is a pop-up that indicates when autocorrections are going to occur, and when backspacing on a correction a pop-up appears that gives alternative choices for the word.
In flutter, the autocorrections happen silently and require backspacing into the word to make the correction. See the gif below for a comparison of the behavior.
Flutter should either integrate with the iOS autocorrection system to provide the popups or emulate them. This is a pretty big usability concern which makes it more difficult to enter text because the corrections are harder to notice and harder to fix.
Logs
N/A, this is a design issue.
Flutter Doctor