Skip to content

[SuperEditor][FEATURE] - Support floating IME candidate UI on iPad with hardware keyboard #3008

@larryisthere

Description

@larryisthere

Your Info
individual, developer of Dawnary, a journaling app built with SuperEditor

User Behavior
When a user is editing text in a SuperEditor document on iPad, with a hardware keyboard connected and the system Chinese IME active, the user should see the primary IME candidate UI appear near the active caret / composing region, similar to native iOS apps such as Reminders or Notes.

I also observed the same floating candidate behavior in WeChat's message input box under the same hardware-keyboard + system Chinese IME scenario, so this does not appear to be limited to Apple first-party apps.

In my current SuperEditor-based editor, that floating candidate UI does not appear near the caret.

To be clear, I am not referring to the bottom-center system input assistance strip that can also appear in hardware-keyboard scenarios. Native apps such as Notes, Reminders, and WeChat show both:

  • a floating candidate bar near the caret
  • a separate bottom-center input assistance strip

In my SuperEditor-based editor, I only see the bottom-center strip, but not the floating candidate bar near the caret.

Feature Value
This is important for iPad writing workflows with external keyboards.

For users who frequently type Chinese with a hardware keyboard, the floating candidate UI feels much more natural because it stays visually connected to the current text insertion point. Native apps already provide that experience in the same scenario, so the current SuperEditor behavior feels less native and less polished for this input mode.

As the developer of Dawnary, I care about making the iPad writing experience feel as close as possible to a native editor, especially for external-keyboard users.

I would like to know whether this is something SuperEditor can support, or whether it is currently limited by Flutter's iOS text input bridge.

Additional context
Environment:

  • iPad 7 + iOS 18.7.5
  • iPad + iOS 26.4 simulator
  • hardware keyboard connected
  • system Chinese IME
  • Flutter app using SuperEditor

Reproduction:

  1. Open an editor built with SuperEditor
  2. Connect a hardware keyboard
  3. Switch to the system Chinese IME
  4. Focus the editor
  5. Type Pinyin with the hardware keyboard

Expected behavior:

  • A floating candidate bar appears near the active caret / composing region
  • The bottom-center input assistance strip may also appear, but it is separate from the floating candidate bar

Actual behavior:

  • The floating candidate bar near the caret does not appear
  • Only the bottom-center input assistance strip is visible

Comparison with other apps:

  • In Reminders, the system Chinese IME shows a floating candidate bar near the caret in the same hardware-keyboard scenario
  • In Notes, I observed the same behavior
  • In WeChat's message input box, I also observed the same behavior
  • In my SuperEditor-based editor, only the bottom-center strip appears

Investigation I already tried:

  • reporting the composing rect to the IME
  • reporting selection rects to the IME
  • keeping the existing caret rect reporting

Those prototype experiments did not change the behavior. The floating candidate bar still did not appear near the caret.

If helpful, I can also provide screenshots showing the difference between native iOS apps, WeChat, and SuperEditor in the same scenario.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions