MenuItem


MenuItem 表示選單中的項目。MenuItem 可以是分隔線或一般項目,一般項目具有標籤和圖示或核取方塊。它可以回應滑鼠點擊或鍵盤快速鍵。

概要

var item;

// Create a separator
item = new nw.MenuItem({ type: 'separator' });

// Create a normal item with label and icon
item = new nw.MenuItem({
  type: "normal", 
  label: "I'm a menu item",
  icon: "img/icon.png"
});

// Or you can omit the 'type' field for normal items
item = new nw.MenuItem({ label: 'Simple item' });

// Bind a callback to item
item = new nw.MenuItem({
  label: "Click me",
  click: function() {
    console.log("I'm clicked");
  },
  key: "s",
  modifiers: "ctrl+alt",
});

// You can have submenu!
var submenu = new nw.Menu();
submenu.append(new nw.MenuItem({ label: 'Item 1' }));
submenu.append(new nw.MenuItem({ label: 'Item 2' }));
submenu.append(new nw.MenuItem({ label: 'Item 3' }));
item.submenu = submenu;

// And everything can be changed at runtime
item.label = 'New label';
item.click = function() { console.log('New click callback'); };

new MenuItem(option)

  • option {Object} 包含 MenuItem 初始設定的物件
    • 標籤 {字串} 選用 一般項目或核取方塊的標籤
    • 圖示 {字串} 選用 一般項目或核取方塊的圖示
    • 工具提示 {字串} 選用 一般項目或核取方塊的工具提示
    • 類型 {字串} 選用 項目的類型。接受三種類型:一般核取方塊分隔線
    • 按一下 {函式} 選用 項目由滑鼠按一下或鍵盤快速鍵觸發時的回呼函式
    • 已啟用 {布林值} 選用 項目是否已啟用或已停用。預設設定為 true
    • 已核取 {布林值} 選用 核取方塊是否已核取。預設設定為 false
    • 子功能表 {功能表} 選用 子功能表
    • 按鍵 {字串} 選用 快速鍵的按鍵
    • 修改鍵 {字串} 選用 快速鍵的修改鍵

每個欄位在 MenuItem 中都有自己的屬性,請參閱每個屬性的文件以取得詳細資料。

MenuItem 繼承自 EventEmitter。您可以使用 on 來聆聽事件。

item.type

取得 MenuItem類型,可能是 分隔線核取方塊一般

注意

類型只能在建立時設定。無法在執行階段變更。

item.label

取得或設定 MenuItem標籤,目前只能是純文字。

item.icon

取得或設定 MenuItem圖示,它必須是圖示檔案的路徑。它可以是應用程式中圖示的相對路徑,或指向使用者系統中檔案的絕對路徑。

分隔線 項目設定 圖示 沒有作用。

item.iconIsTemplate (Mac)

取得或設定 icon 影像是否視為「範本」(預設為 true)。當屬性設定為 true 時,影像會視為「範本」,而系統會根據狀態項目(例如深色選單、淺色選單等)的各種狀態自動確保適當的樣式。範本影像應僅包含黑色和透明色彩,並可以使用影像中的 alpha 通道調整黑色內容的不透明度。這對 Linux 和 Windows 沒有影響。

item.tooltip (Mac)

取得或設定 MenuItemtooltip,它只能是純文字。tooltip 是描述選單項目的簡短字串,當您將滑鼠游標懸停在項目上時,它會顯示。

item.checked

取得或設定 MenuItem 是否 checked。通常,如果 MenuItem 已勾選。它的左側會有一個標記。它主要用於指示選項是否開啟。

item.enabled

取得或設定 MenuItem 是否 enabled。已停用的 MenuItem 會變為灰色,您將無法按一下它。

item.submenu

取得或設定 MenuItemsubmenusubmenu 必須是 Menu 物件。您應該在建立 MenuItem 時在 option 中設定 submenu。在執行階段變更它在某些平台上會很慢。

item.click

取得或設定 MenuItemclick 回呼,click 必須是有效的函式。當使用者啟用項目時,它會被呼叫。

item.key

單一字元字串,用於指定選單項目的快速鍵。

所有平台的有效按鍵

  • 字母:a-z
  • 數字:0-9
  • 主區域的其他按鍵:[ , ] , ' , , , . , / , ` , - , = , \ , ' , ; , Tab
  • Esc
  • Down , Up , Left , Right
  • W3C DOM Level 3 KeyboardEvent Key ValuesKeyA(與 A 相同)、Escape(與 Esc 相同)、F1ArrowDown(與 Down 相同)等。

僅限 Mac 的特殊按鍵

在 Mac 上,您也可以使用特殊按鍵作為快捷鍵,方法是使用 String.fromCharCode(specialKey)。以下是一些有用的按鍵

  • 28:向左(
  • 29:向右(
  • 30:向上(
  • 31:向下(
  • 27:Escape(
  • 11:PageUp(
  • 12:PageDown(

如需查看 Mac 上支援的特殊按鍵完整清單,請參閱 NSMenuItem.keyEquivalentNSEvent: Function-Key Unicodes

item.modifiers

用於指定選單項目快捷鍵的修飾鍵的字串。它應該是下列字串的串接:cmd / command / supershiftctrlalt。例如:"cmd+shift+alt"

cmd 在所有平台上代表不同的按鍵:Windows 上的 Windows 按鍵(Windows)、Linux 上的 Windows 按鍵、Mac 上的 Apple 按鍵()。supercommandcmd 的別名。

事件:click

當使用者啟動選單項目時發出。