Description
Adding a KeyboardAccelerator with both Cmd and Shift modifiers to any MenuFlyoutItem inside a MenuBarItem causes that entire menu to stop opening on Mac Catalyst. The menu does not render when clicked and any keyboard shortcuts for items within it also stop working. Other MenuBarItem menus in the same app that do not use Cmd+Shift accelerators are unaffected.
This occurs regardless of modifier order (Cmd,Shift or Shift,Cmd) and whether the accelerator is defined in XAML or in code-behind.
The official documentation (https://learn.microsoft.com/en-us/dotnet/maui/user-interface/keyboard-accelerators) explicitly lists Cmd+Shift+S as a supported format on Mac Catalyst, so this is a regression from documented behaviour.
Steps to Reproduce
- Create a new .NET MAUI app targeting Mac Catalyst
- Add a MenuBarItem with a MenuFlyoutItem using a Cmd+Shift keyboard accelerator:
xml<ContentPage.MenuBarItems>
<MenuBarItem Text="File">
<MenuFlyoutItem Text="Save As" Command="{Binding SaveAsCommand}">
<MenuFlyoutItem.KeyboardAccelerators>
<KeyboardAccelerator Modifiers="Shift,Cmd" Key="S" />
</MenuFlyoutItem.KeyboardAccelerators>
</MenuFlyoutItem>
</MenuBarItem>
</ContentPage.MenuBarItems>
- Run on Mac Catalyst
- Click the "File" menu
Expected behaviour: The File menu opens and displays "Save As" with the ⇧⌘S shortcut hint visible next to it.
Actual behaviour: The File menu does not open at all. The entire MenuBarItem is non-functional. Pressing Cmd+Shift+S also has no effect. Removing the Shift modifier (leaving only Cmd) immediately restores the menu to working order.
Additional notes:
- The bug affects the entire parent MenuBarItem, not just the individual item with the accelerator
- Cmd+Alt as a two-modifier combination works correctly on Mac Catalyst
- The issue does not affect Windows (WinUI), where Ctrl+Shift works as expected
Link to public reproduction project repository
No response
Version with bug
10.0.10
Is this a regression from previous behavior?
Not sure, did not test other versions
Last version that worked well
Unknown/Other
Affected platforms
macOS
Affected platform versions
No response
Did you find any workaround?
Workaround is to use OnPlatform and substitute Alt,Cmd on Mac Catalyst, at the cost of a non-standard shortcut
Relevant log output
Description
Adding a KeyboardAccelerator with both Cmd and Shift modifiers to any MenuFlyoutItem inside a MenuBarItem causes that entire menu to stop opening on Mac Catalyst. The menu does not render when clicked and any keyboard shortcuts for items within it also stop working. Other MenuBarItem menus in the same app that do not use Cmd+Shift accelerators are unaffected.
This occurs regardless of modifier order (Cmd,Shift or Shift,Cmd) and whether the accelerator is defined in XAML or in code-behind.
The official documentation (https://learn.microsoft.com/en-us/dotnet/maui/user-interface/keyboard-accelerators) explicitly lists Cmd+Shift+S as a supported format on Mac Catalyst, so this is a regression from documented behaviour.
Steps to Reproduce
Expected behaviour: The File menu opens and displays "Save As" with the ⇧⌘S shortcut hint visible next to it.
Actual behaviour: The File menu does not open at all. The entire MenuBarItem is non-functional. Pressing Cmd+Shift+S also has no effect. Removing the Shift modifier (leaving only Cmd) immediately restores the menu to working order.
Additional notes:
Link to public reproduction project repository
No response
Version with bug
10.0.10
Is this a regression from previous behavior?
Not sure, did not test other versions
Last version that worked well
Unknown/Other
Affected platforms
macOS
Affected platform versions
No response
Did you find any workaround?
Workaround is to use OnPlatform and substitute Alt,Cmd on Mac Catalyst, at the cost of a non-standard shortcut
Relevant log output