Not sure whether it fits here, but on Mac the "Quit" entry should be last. While on Mac Rundender it is the 3rd last.

_Originally posted by @kud1ing in https://github.com/linebender/druid/issue_comments/707944931_
Thanks. As noted in the referenced thread, the last two entries should be under the Edit menu.
I can reproduce. These two items are dynamically added to our menu by AppKit, and they're putting them in the wrong place; I really don't know much more than that at the moment.
Druid's "quit" example shows this behaviour already (while slightly different):

applicationDidFinishLaunching: or later. applicationWillFinishLaunching: would be too earlyhttps://blog.rachelbrindle.com/2015/08/14/osx-programming-programmatic-menu-buttons/ says
There are quite a few gotcha鈥檚 to adding things to the global menu.
First is that every NSMenuItem and NSMenu you add needs to have the title property set,
otherwise they won鈥檛 be visible.
So if i do both:
let () = msg_send![menu.menu, setTitle: menu_item_title];
let () = msg_send![menu_item, setTitle: menu_item_title];
then it does not look too bad (i've added an empty "Edit" menu myself):


Notice that "Start Dictation ..." is missing, so this solution is not yet perfect.
And as a bonus, if you add an empty "View" menu, there are more automagical entries:

For reference, here is how Cacao does it:
The difference is that Druid's Menu does not have a title.
@cmyr : Oh, you've removed the setting of the menu time title in https://github.com/linebender/druid/commit/e47b335709f17357f79e2232980d713e2a08d56c

Do you remember why?
I don't remember exactly, except that I remember there being some weirdness when the top-level menu (which is basically the menubar itself?) had a name? But I did not research this is thoroughly as you are doing.
In this case, maybe one could just disable that for the main menu, by comparing the menu with NSApplication:: mainMenu().