dotnet / dotnet/maui

[iOS] Editor jumps to middle of screen when focused with cursor at bottom

Open
#32,168 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

area-controls-editor i/regression partner/syncfusion platform/ios regressed-in-9.0.10 s/triaged s/verified t/bug
Dominant language
C#
Stars
23.3k
Forks
2k
Avg merge
1d 14h
Merged PRs (30d)
296

Description

Description

Bug description

When focusing an Editor with a large amount of text and a fixed height (HeightRequest), the entire page view unexpectedly scrolls upward, positioning the editor roughly in the middle of the screen above the keyboard.

This behavior occurs only when the text cursor (caret) is located at the very bottom visible line of the Editor at the moment of focusing.
If the cursor is placed anywhere else (for example, in the top or middle lines), the issue does not occur.

The issue started appearing with .NET 9.0.0 workloads.
It works correctly in .NET 8.0.100 workloads.

Affected platforms
iOS

My testing platform

  • Platform: iOS
  • Version: iOS 18.5 (Simulator – iPhone 16 Pro Max)
  • .NET version: .NET 9
  • MAUI workload version: 9.0.82 (also reproducible since 9.0.0)
  • Regression from: .NET 8.0.100
  • Reproduces on device and simulator: Yes
  • Reproduces on Android: No

Expected behavior

The page layout should remain stable when the editor receives focus.
The system should only adjust enough to keep the caret visible, not shift the entire content up.

Actual behavior

When the cursor is on the bottom visible line and the editor is focused, the entire page shifts upward, centering the control above the keyboard.
If the cursor is not at the bottom, the issue does not occur.

Steps to Reproduce

Use my repo:
https://github.com/mtopolewski/MauiEditorIssueApp
And look at my video:
https://github.com/user-attachments/assets/f1f88890-4b7f-4299-9cbd-b036403373c9

Link to public reproduction project repository

https://github.com/mtopolewski/MauiEditorIssueApp

Version with bug

9.0.0 GA

Is this a regression from previous behavior?

Yes, this used to work in .NET MAUI

Last version that worked well

.net8 8.0.100

Affected platforms

iOS

Affected platform versions

18.5

Did you find any workaround?

Back to .net8 (workload 8.0.100)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked MauiEditorIssueApp reproduction project and reproduce the focus case on iOS 18.5 with the .NET 9.0.82 workload, then compare it with .NET 8.0.100. Done means the page remains stable when a fixed-height Editor is focused with the caret on its bottom visible line, while the caret still remains visible above the keyboard.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, ios
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.