feat: enable secondary label for macOS menu (#47042)
* feat: enable secondary label for macOS menu Co-authored-by: Michaela Laurencin <mlaurencin@electronjs.org> * Update shell/browser/ui/cocoa/electron_menu_controller.mm Co-authored-by: Robo <hop2deep@gmail.com> Co-authored-by: Michaela Laurencin <35157522+mlaurencin@users.noreply.github.com> * fix for lint Co-authored-by: Michaela Laurencin <mlaurencin@electronjs.org> * update docs for sublabel Co-authored-by: Michaela Laurencin <mlaurencin@electronjs.org> --------- Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Michaela Laurencin <mlaurencin@electronjs.org> Co-authored-by: Michaela Laurencin <35157522+mlaurencin@users.noreply.github.com>
This commit is contained in:
parent
ec1b0f4923
commit
ec83c1303c
3 changed files with 31 additions and 1 deletions
|
@ -19,7 +19,7 @@ See [`Menu`](menu.md) for examples.
|
|||
* `type` string (optional) - Can be `normal`, `separator`, `submenu`, `checkbox` or
|
||||
`radio`.
|
||||
* `label` string (optional)
|
||||
* `sublabel` string (optional)
|
||||
* `sublabel` string (optional) _macOS_ - Available in macOS >= 14.4
|
||||
* `toolTip` string (optional) _macOS_ - Hover text for this menu item.
|
||||
* `accelerator` [Accelerator](accelerator.md) (optional)
|
||||
* `icon` ([NativeImage](native-image.md) | string) (optional)
|
||||
|
|
|
@ -332,6 +332,27 @@ name, no matter what label you set. To change it, modify your app bundle's
|
|||
[About Information Property List Files][AboutInformationPropertyListFiles]
|
||||
for more information.
|
||||
|
||||
### Menu Sublabels
|
||||
|
||||
Menu sublabels, or [subtitles](https://developer.apple.com/documentation/appkit/nsmenuitem/subtitle?language=objc), can be added to menu items using the `sublabel` option. Below is an example based on the renderer example above:
|
||||
|
||||
```js @ts-expect-error=[12]
|
||||
// main
|
||||
ipcMain.on('show-context-menu', (event) => {
|
||||
const template = [
|
||||
{
|
||||
label: 'Menu Item 1',
|
||||
sublabel: 'Subtitle 1',
|
||||
click: () => { event.sender.send('context-menu-command', 'menu-item-1') }
|
||||
},
|
||||
{ type: 'separator' },
|
||||
{ label: 'Menu Item 2', sublabel: 'Subtitle 2', type: 'checkbox', checked: true }
|
||||
]
|
||||
const menu = Menu.buildFromTemplate(template)
|
||||
menu.popup({ window: BrowserWindow.fromWebContents(event.sender) })
|
||||
})
|
||||
```
|
||||
|
||||
## Setting Menu for Specific Browser Window (_Linux_ _Windows_)
|
||||
|
||||
The [`setMenu` method][setMenu] of browser windows can set the menu of certain
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue