dotnet / maui

.NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.
https://dot.net/maui
MIT License
21.83k stars 1.67k forks source link

The .NET MAUI Editor control does not scroll properly on iOS when enclosed in a Border control #20736

Open Kurt427 opened 4 months ago

Kurt427 commented 4 months ago

Description

I created a new .NET Maui project and modified the main page to add 3 Editor controls, and tested on an iPhone 11 pro:

The first (top) Editor is enclosed in a Border control. The second Editor is by itself. The third Editor is enclosed in a Frame control.

When you run the project you see the 3 Editor controls showing some sample data "Line 1", "Line 2", ... Here is a screenshot on an iPhone 11 Pro:

IMG_3883

Then I scrolled down in each of the controls to see the rest of the data (up to "Line 7"):

IMG_3884

Notice that in the top Editor, data only up to "Line 4" appears. That is also the last line that appeared initially when the app was launched.

The other two Editor controls do not exhibit that problem.

Steps to Reproduce

(See Description.)

Link to public reproduction project repository

https://github.com/Kurt427/MauiEditorTest

Version with bug

8.0.6 SR1

Is this a regression from previous behavior?

Not sure, did not test other versions

Last version that worked well

Unknown/Other

Affected platforms

iOS

Affected platform versions

iPhone 11 Pro with iOS 15.6.1, iPhone 15 iOS 17.2 Simulator

Did you find any workaround?

Yes, use a Frame control to enclose the Editor rather then a Border control. (The documentation for the Frame control suggests to use a Border control for .NET MAUI projects.)

Relevant log output

No response

PureWeen commented 4 months ago

Can you test with the latest nightly build? https://github.com/dotnet/maui/wiki/Nightly-Builds

ghost commented 4 months ago

Hi @Kurt427. We have added the "s/needs-info" label to this issue, which indicates that we have an open question for you before we can take further action. This issue will be closed automatically in 7 days if we do not hear back from you by then - please feel free to re-open it if you come back to this issue after that time.

Kurt427 commented 4 months ago

I will test with the latest nightly build, but I will not be able to do it until after March 3. I also need to learn about nightly builds. Thank you.

Kurt427 commented 4 months ago

I tried to set to the nightly build of Microsoft.Maui.Controls (8.0.10-nightly.10215) as follows in the project config file:

<MauiVersion>8.0.10-nightly.10215</MauiVersion>

(Before that, my current version was 8.0.6.)

My package references are set up as follows:

    <PackageReference Include="Microsoft.Maui.Controls" Version="$(MauiVersion)" />
    <PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="$(MauiVersion)" />

When I do that, the version instead becomes: 9.0.0-preview.1.9973, and it shows up as an error.

I also tried unloading and reloading the project - same result.

A Visual Studio message came up; partial contents of the linked log file are below.

I am new to using nightly builds. I viewed James Montemagno's video, ".NET MAUI Version Pinning & Nightly Build Integration" to start. Any idea on what am I doing wrong?

Thank you.

Partial log file contents:

===================== 3/4/2024 4:30:50 PM Recoverable System.AggregateException: One or more errors occurred. ---> (Inner Exception #0) Microsoft.Assumes+InternalErrorException: Primary workspace unknown. at Microsoft.Assumes.Fail(String message) at Microsoft.VisualStudio.ProjectSystem.LanguageServices.LanguageServiceHost.d__21.MoveNext() --- End of stack trace from previous location where exception was thrown --- ...

PureWeen commented 3 months ago

@Kurt427 I'm not hitting this issue with using nightlies You might need to add a global.json?

Can you attach a binlog? https://github.com/dotnet/maui/wiki/Capturing-Binary-Logs

Kurt427 commented 3 months ago

Dear @PureWeen,

Thank you for the suggestion on getting nightly builds to work for me. However, I currently do not use nightly builds for development. I respectfully ask that you try to duplicate the original problem I submitted using your nightly. All you need to do is copy the following XAML lines from the repro that I submitted in to a .NET MAUI page of your choice:

        <Border Stroke="LightGray">
            <Editor  HeightRequest="100"
                     Text="Line 1&#xa;Line 2&#xa;Line 3&#xa;Line 4&#xa;Line 5&#xa;Line 6&#xa;Line 7&#xa;" />
        </Border>

        <Editor  HeightRequest="100"
                Text="Line 1&#xa;Line 2&#xa;Line 3&#xa;Line 4&#xa;Line 5&#xa;Line 6&#xa;Line 7&#xa;" />

        <Frame BorderColor="LightGray" Padding="0">
            <Editor  HeightRequest="100"
                     Text="Line 1&#xa;Line 2&#xa;Line 3&#xa;Line 4&#xa;Line 5&#xa;Line 6&#xa;Line 7&#xa;" />
        </Frame>

I believe this is the fastest way to move forward with problem I originally submitted. If this will not work for you, then I will spend more time looking into nightly builds, including your suggestions about global.json and a binlog.

Thank you, Kurt

Kurt427 commented 3 months ago

@dotnet-policy-service says there has been no activity. I have not heard back anything since my last post. I am sorry, but I do not have the time to investigate why the nightlies do not work for me. If the case is closed, I may open it again when I have the time.

Zhanglirong-Winnie commented 3 months ago

Verified this issue with Visual Studio 17.10.0 Preview 2 on 8.0.10. Can repro on iOS platform with sample project.

Kurt427 commented 3 months ago

Thank you, @Zhanglirong-Winnie!

domneedham commented 3 months ago

Can confirm this bug too, for us it causes an issue where a user can't see all the text past a certain length of characters or new lines.

prstepic commented 1 month ago

We’ve seen this bug too. When the text exceeds the editor height, the text is no longer visible even with scrolling. This is the same way explained in the original post. Taking the Editor out of the border displays properly, however, then you lose out on all the formatting of the border (ex. Rounded corners). It would be nice to have a fix for this as there is no other way to format an Editor.