3 ms·
They're not enforced by technical means, usually, but Apple HIG are fairly highly regarded by developers and users alike. I only do UI programming in wxWidgets
by torstenvl 4y ago
They're not enforced by technical means, usually, but Apple HIG are fairly highly regarded by developers and users alike.
I only do UI programming in wxWidgets so I can't speak for other developer workflows. When I create a menu system, if I don't include accelerators manually, the system-appropriate ones are automatically added for certain things. Additionally, wxWidgets automatically moves Windows/Linux "standard" menu items to macOS-specific locations (e.g., Quit and About menu items), if and only if they're in the pertinent menus at the time they're added to the menu bar. If I add the File menu to the menu bar, and then add "E&xit" to the file menu, it still shows in the File menu.
So, in my experience, it's a strong default, but it isn't constraining; you can easily override that behavior when necessary.
- palata 4y agoYeah for UI it makes a lot of sense. Especially if those are "standalone" (for lack of a better word) elements. For instance, changing the accelerators (I guess that's related to the animation when opening a menu, right?) cannot really conflict with anything else. So it's perfect to use system-wide configurations like that. But I wonder about key bindings. I think it makes sense to have guidelines, and to use "Cmd + Q" to quit whenever it makes sense. But defining this as a high-level action "quit", and letting the user define the binding (e.g. "I want Cmd + S to quit") seems rather complicated to me. If "Cmd + S" is already set system-wide for the "save" action, then the system could tell you "that will disable the 'save' action, are you sure?". But if you go for "Quit with Cmd + J", and "Cmd + J" is not a system-wide binding but instead is used by... say... Blender. Then the system will happily change "Ctrl + Q" with "Ctrl + J", and now what happens if you hit "Ctrl + J" in Blender? Should it quit, or should it do what Blender does for "Ctrl + J"? I am not sure everything can be configurable. My Firefox toolbar is at the top, on mobile I can have it at the bottom (not sure I can do that on Desktop). But I can't have it in the middle of the page, or vertically on a side. That's a decision that was made by the Firefox devs, not by the system settings. That does not mean we should not expect sane defaults, but I would argue that ":q" is a sane default in vim.