NSMenuItem not clickable after updating to Sonoma

134 Views Asked by At

I have a CEF application where the menu bar is set programatically. On Ventura, the menu bar behaved as expected, but after updating to Sonoma, clicking on any menu item does not expand it. This includes the Apple menu.

void setup_menu()
{
   @autoreleasepool
   {
      NSMenu* menubar = [NSMenu new];
      [NSApp setMainMenu:menubar];

      NSMenuItem *appMenuItem = [menubar addItemWithTitle:@"" action:nil keyEquivalent:@""];
      NSMenu *appMenu = [NSMenu new];
      [menubar setSubmenu:appMenu forItem:appMenuItem];
      [appMenu addItemWithTitle:@"Hide" action:@selector(hide:) keyEquivalent:@"h"];
      [appMenu addItemWithTitle:@"Quit" action:@selector(terminate:) keyEquivalent:@"q"];

      NSMenuItem *editMenuItem = [menubar addItemWithTitle:@"" action:nil keyEquivalent:@""];
      NSMenu *editMenu = [[NSMenu alloc] initWithTitle:@"Edit"];
      [menubar setSubmenu:editMenu forItem:editMenuItem];
      [editMenu addItemWithTitle:@"Cut" action:@selector(cut:) keyEquivalent:@"x"];
      [editMenu addItemWithTitle:@"Copy" action:@selector(copy:) keyEquivalent:@"c"];
      [editMenu addItemWithTitle:@"Paste" action:@selector(paste:) keyEquivalent:@"v"];
      [editMenu addItemWithTitle:@"Select All" action:@selector(selectAll:) keyEquivalent:@"a"];
   }
}
  • This function is being called after the window is created but before it is shown.
  • The shortcuts I've defined all work.
  • The NSMenuItems I've defined are all enabled and appear in the menu bar, but can't be interacted with.

Why does this only happen in Sonoma, and how can I resolve it?

0

There are 0 best solutions below