MAUI app editor displaying floating keyboard in iPad when keyboard is numeric

Keerthana Krishna 60 Reputation points
2026-10-12T13:25:59.31+00:00

In MAUI if editor is mentioned with Numeric keyboard explicitly then clicking on it opens the floating keyboard first and then tapping on it again closes this floating keyboard and opens the default keyboard at bottom with numeric but I can see the abc and click on it would open the alphabets and able to enter alphabets and special characters also. I am attaching screenshots, code and IPAD information. Let me know if you need any information.

<Editor Keyboard="Numeric" BackgroundColor="Red" TextColor="Black" x:Name="SerialNumber1"

                                           AutomationId="SerialNumber"

AutomationProperties.Name="Enter Gateway Serial Number"

FontFamily="RoboRegular"

FontSize="{StaticResource MidSmallSize}"

HeightRequest="40"

Placeholder="Enter Serial Number"

PlaceholderColor="{StaticResource Gray}"

Text="{Binding SerialNo,Mode=TwoWay}"/>

IPAD OS- 26.3- IPAD(A16)Image (2)

Image (1)

Image

Developer technologies | .NET | .NET Multi-platform App UI
0 comments No comments

1 answer

Sort by: Most helpful
  1. Harry Nguyen (WICLOUD CORPORATION) 260 Reputation points Microsoft External Staff Moderator
    2026-10-13T02:47:34.73+00:00

    Hi @Keerthana Krishna ,

    Thanks for your sharing the details.

    What you're seeing is related to a change in iPadOS 26 rather than an issue in your XAML. In .NET MAUI, Keyboard="Numeric" maps to UIKeyboardType.DecimalPad on iOS, and on iPadOS 26 the system can present that keyboard type as a small floating number pad. Being able to switch to ABC and type letters is expected on iPad as well: the keyboard type is only a hint to the system and doesn't restrict what can be entered, so the app needs to validate the input itself.

    A workaround that others have confirmed works is to use the NumbersAndPunctuation keyboard type on iPad instead. This opens the regular docked keyboard directly on the numbers page rather than the floating pad. You can apply it to the Editor with a handler mapping in MauiProgram.cs:

    #if IOS  
    using UIKit;  
    #endif  
    builder.ConfigureMauiHandlers(handlers =>  
    {  
    #if IOS  
        Microsoft.Maui.Handlers.EditorHandler.Mapper.AppendToMapping(nameof(IEditor.Keyboard), (handler, view) =>  
        {  
            if (view.Keyboard == Keyboard.Numeric &&  
                UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad)  
            {  
                handler.PlatformView.KeyboardType = UIKeyboardType.NumbersAndPunctuation;  
            }  
        });  
    #endif  
    });  
    

    Since this keyboard can still switch to letters, you can add a small filter so only digits are kept:

    <Editor x:Name="SerialNumber1"  
            Keyboard="Numeric"  
            TextChanged="SerialNumber1_TextChanged"  
            ... />  
    private void SerialNumber1_TextChanged(object sender, TextChangedEventArgs e)  
    {  
        if (sender is not Editor editor || string.IsNullOrEmpty(e.NewTextValue))  
            return;  
        var digitsOnly = new string(e.NewTextValue.Where(char.IsAsciiDigit).ToArray());  
        if (digitsOnly != e.NewTextValue)  
            editor.Text = digitsOnly;  
    }  
    

    This behavior is currently tracked in the .NET MAUI repository, where you can follow any new updates or changes.

    Please give this a try and let me know how it goes. If you have any other requirements for this field, such as allowing a decimal point or a specific serial number format, feel free to share them and I'll be happy to help further.

    If you found my response helpful or informative, I would greatly appreciate it if you could follow this guide for your confirmation.

    Thank you.

    Was this answer helpful?

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.