Electron OSX应用程序菜单-如何添加自定义文件菜单?

查尔斯·罗斯

我有一个带有菜单的应用程序(基于杂志),该菜单在Windows和Ubuntu上都可以正常运行,但是我无法使应用程序级别的自定义菜单项出现在MacOS上。这些菜单项是“文件”和“视图”条目。

我已经仔细研究了电子API文档,并且看到了OSX的特殊注意事项,尤其是有关“角色”属性的信息,但在这里我仍然受阻。我可以在OSX上为API文档中列出的事物类型创建菜单项(例如,通过Renderer脚本使用角色进行“编辑”菜单项),但不能为我的应用创建菜单项。

我的菜单项可能与mac菜单中保留的“文件/视图”菜单项名称发生冲突吗?

这是我的菜单模板字符串的片段:

var SendEvent = function(name) {
 return function() {win.webContents.send(name);};
};

var template = [
 {label: 'File', submenu: [
  {label: 'New', click: SendEvent('file-new')},
  {label: 'Open', click: OpenFile},
  {label: 'Save', click: SendEvent('file-save')},
  {label: 'Save As', click: SendEvent('file-save-as')},
  {label: 'Close', click: SendEvent('file-close')},
  {type: 'separator'},
  {label: 'Quit', click: function() {app.quit();}}
 ]}, {label: 'View', submenu: [
  {label: 'HTML/Markdown', click: SendEvent('view-toggle')}
 ]}
];
Menu.setApplicationMenu(Menu.buildFromTemplate(template));

在macOS上,具有自定义“文件”和“查看”菜单操作的应用程序是否还有其他示例?

NullIsNot0

Menu.setApplicationMenu(Menu.buildFromTemplate(template));应该在createWindow()函数调用:

function createWindow() {
    mainWindow = new BrowserWindow({
        width: 800,
        height: 600
    })
    mainWindow.loadURL(url.format({
        pathname: path.join(__dirname, "index_menus.html"),
        protocol: "file:",
        slashes: true
    }))

    mainWindow.on("closed", () => {
        mainWindow = null;
    });

    var template = [
      {label: 'File', submenu: [
        {label: 'New', click: SendEvent('file-new')},
        {label: 'Open', click: SendEvent('file-open')},
        {label: 'Save', click: SendEvent('file-save')},
        {label: 'Save As', click: SendEvent('file-save-as')},
        {label: 'Close', click: SendEvent('file-close')},
        {type: 'separator'},
        {label: 'Quit', click: function() {app.quit();}}
      ]},
      {label: 'View', submenu: [
        {label: 'HTML/Markdown', click: SendEvent('view-toggle')}
      ]}
    ];
    Menu.setApplicationMenu(Menu.buildFromTemplate(template));
}

如果使用“文件”菜单,它将被放置在macOS上的YourAppName菜单下(第一个)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Electron应用程序中单击菜单更改AngularJS状态

来自分类Dev

Electron:模态和自定义菜单栏的问题

来自分类Dev

应用程序的自定义任务栏菜单

来自分类Dev

Electron.NET:如何添加菜单?

来自分类Dev

将自定义模块导入到Electron应用程序的renderer.js中

来自分类Dev

使用Electron的自定义形状独立Windows应用程序

来自分类Dev

我可以自定义 Electron 托盘应用程序吗?

来自分类Dev

无论如何,是否可以自定义开始菜单应用程序的外观?

来自分类Dev

如何自定义现有应用程序的Windows系统菜单

来自分类Dev

如何在电子应用程序中自定义菜单?

来自分类Dev

如何在OSX中的应用程序菜单中添加元素?

来自分类Dev

如何在OSX中的应用程序菜单中添加元素?

来自分类Dev

如何添加自定义菜单项以快速添加自定义标签

来自分类Dev

如何在IDE菜单中添加自定义样式?

来自分类Dev

在Electron应用程序中捕获文件下载事件

来自分类Dev

如何查找Electron应用程序是MAC还是MAS构建?

来自分类Dev

如何独立于终端运行Electron应用程序?

来自分类Dev

Electron OSX systemPreferences.askForMediaAccess使应用程序崩溃

来自分类Dev

在RCP应用程序中的Eclipse的项目浏览器视图中添加自定义右键菜单

来自分类Dev

Python应用程序菜单

来自分类Dev

在菜单流下添加自定义模块

来自分类Dev

如何在osx菜单栏上更改Java应用程序的标题?

来自分类Dev

osx:如何使cmd-tab(应用程序切换器)菜单始终显示?

来自分类Dev

如何通过DevTools在Electron应用程序中访问`electron.remote.app`?

来自分类常见问题

如何设置Electron / Atom Shell应用程序的应用程序图标

来自分类Dev

如何使用Pyinstaller打包的Kivy Python应用程序在OSX菜单栏中创建菜单项?

来自分类Dev

如何使用Pyinstaller打包的Kivy Python应用程序在OSX菜单栏中创建菜单项?

来自分类Dev

如何在Eclipse 3.8.1 RCP应用程序的“帮助”菜单下的“关于”条目中自定义文本和按钮

来自分类Dev

使用Electron-builder自定义NSIS安装程序

Related 相关文章

  1. 1

    在Electron应用程序中单击菜单更改AngularJS状态

  2. 2

    Electron:模态和自定义菜单栏的问题

  3. 3

    应用程序的自定义任务栏菜单

  4. 4

    Electron.NET:如何添加菜单?

  5. 5

    将自定义模块导入到Electron应用程序的renderer.js中

  6. 6

    使用Electron的自定义形状独立Windows应用程序

  7. 7

    我可以自定义 Electron 托盘应用程序吗?

  8. 8

    无论如何,是否可以自定义开始菜单应用程序的外观?

  9. 9

    如何自定义现有应用程序的Windows系统菜单

  10. 10

    如何在电子应用程序中自定义菜单?

  11. 11

    如何在OSX中的应用程序菜单中添加元素?

  12. 12

    如何在OSX中的应用程序菜单中添加元素?

  13. 13

    如何添加自定义菜单项以快速添加自定义标签

  14. 14

    如何在IDE菜单中添加自定义样式?

  15. 15

    在Electron应用程序中捕获文件下载事件

  16. 16

    如何查找Electron应用程序是MAC还是MAS构建?

  17. 17

    如何独立于终端运行Electron应用程序?

  18. 18

    Electron OSX systemPreferences.askForMediaAccess使应用程序崩溃

  19. 19

    在RCP应用程序中的Eclipse的项目浏览器视图中添加自定义右键菜单

  20. 20

    Python应用程序菜单

  21. 21

    在菜单流下添加自定义模块

  22. 22

    如何在osx菜单栏上更改Java应用程序的标题?

  23. 23

    osx:如何使cmd-tab(应用程序切换器)菜单始终显示?

  24. 24

    如何通过DevTools在Electron应用程序中访问`electron.remote.app`?

  25. 25

    如何设置Electron / Atom Shell应用程序的应用程序图标

  26. 26

    如何使用Pyinstaller打包的Kivy Python应用程序在OSX菜单栏中创建菜单项?

  27. 27

    如何使用Pyinstaller打包的Kivy Python应用程序在OSX菜单栏中创建菜单项?

  28. 28

    如何在Eclipse 3.8.1 RCP应用程序的“帮助”菜单下的“关于”条目中自定义文本和按钮

  29. 29

    使用Electron-builder自定义NSIS安装程序

热门标签

归档