2017-10-16 21 views
1

電子チュートリアルに従うと、OS Xに表示されるメニューを取得できません。メニューオブジェクトにはメニュー項目が入力されていることが確認され、ウィンドウや上部には表示されません画面のHTMLファイルはうまくロードされます。電子メニューが表示されない

私が見るのは、エレクトロンと書かれた(デフォルトの)アプリメニューだけですが、空の行でなくクリックしてもコンテンツは表示されません。クリックすると何も起こりません。

彼らはサブメニューが不足しているので、私はここに私のMac上で動作しているようですあなたの例の修正版で、それはちょうどあなたのメニューを飛ばしていると思う
const { app, BrowserWindow, Menu } = require("electron"); 
const url = require("url"); 
const path = require("path"); 

const mainWindowUrl = url.format({ 
    pathname: path.join(__dirname, "html", "main.html"), 
    protocol: "file:", 
    slashes: true, 
}); 

const menuTemplate = [ 
    { 
     label: "File", 
    }, 
    { 
     label: "Menu1", 
    }, 
    { 
     label: "Menu2", 
    }, 
]; 

const onAppReady =() => { 
    const mainWindow = new BrowserWindow({}); 
    mainWindow.loadURL(mainWindowUrl); 

    const menu = Menu.buildFromTemplate(menuTemplate); 
    Menu.setApplicationMenu(menu); 
}; 

app.on("ready", onAppReady); 

答えて

1

:それはだ場合、私は知らない

const { app, BrowserWindow, Menu } = require("electron"); 
const url = require("url"); 
const path = require("path"); 

const mainWindowUrl = url.format({ 
    pathname: path.join(__dirname, "html", "main.html"), 
    protocol: "file:", 
    slashes: true 
}); 
const menuTemplate = [ 
    { 
     label: "File", 
     submenu: [{role: 'TODO'}] 
    }, 
    { 
     label: "Menu1", 
     submenu: [{role: 'TODO'}] 
    }, 
    { 
     label: "Menu2", 
     submenu: [{role: 'TODO'}] 
    } 
]; 

const onAppReady =() => { 
    const mainWindow = new BrowserWindow({}); 
    mainWindow.loadURL(mainWindowUrl); 

    const menu = Menu.buildFromTemplate(menuTemplate); 
    Menu.setApplicationMenu(menu); 
}; 

app.on("ready", onAppReady); 

は、 OSX特有のことですが、少なくともElectronは役割を直接トリガーするメニューを好きではなく、何らかのアクションを引き起こすサブメニューを明らかにしなければならないようです。

+0

ありがとう!有効なメニューを作成するために他のコンテンツが必要な場所はどこにも見当たりませんでした。しかし、意味があります。私はおそらくそれを逃した。 :-) –

0

私はOS X上であなたのケースでは「ファイル」で、あなたのメニューテンプレートの最初のメニュー項目は、デフォルトの電子メニューの下にありますので、あなたの配列に

const mainMenuTemplate = [ 
    {}, 
    { 
     label: 'File', 
     submenu: [ 
      { 
       label: 'Add Item' 
      }, 
      { 
       label: 'Clear items' 
      }, 
      { 
       label: 'Quit', 
       click(){ 
        app.quit(); 
       } 
      } 
     ] 
    } 
]; 
を空の項目を追加したい場合がありますことに気づきました
関連する問題