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)
取得或設定 MenuItem
的 tooltip
,它只能是純文字。tooltip
是描述選單項目的簡短字串,當您將滑鼠游標懸停在項目上時,它會顯示。
item.checked
取得或設定 MenuItem
是否 checked
。通常,如果 MenuItem
已勾選。它的左側會有一個標記。它主要用於指示選項是否開啟。
item.enabled
取得或設定 MenuItem
是否 enabled
。已停用的 MenuItem
會變為灰色,您將無法按一下它。
item.submenu
取得或設定 MenuItem
的 submenu
,submenu
必須是 Menu
物件。您應該在建立 MenuItem
時在 option
中設定 submenu
。在執行階段變更它在某些平台上會很慢。
item.click
取得或設定 MenuItem
的 click
回呼,click
必須是有效的函式。當使用者啟用項目時,它會被呼叫。
item.key
單一字元字串,用於指定選單項目的快速鍵。
所有平台的有效按鍵
- 字母:
a
-z
- 數字:
0
-9
- 主區域的其他按鍵:
[
,]
,'
,,
,.
,/
,`
,-
,=
,\
,'
,;
,Tab
Esc
Down
,Up
,Left
,Right
- W3C DOM Level 3 KeyboardEvent Key Values:
KeyA
(與A
相同)、Escape
(與Esc
相同)、F1
、ArrowDown
(與Down
相同)等。
僅限 Mac 的特殊按鍵
在 Mac 上,您也可以使用特殊按鍵作為快捷鍵,方法是使用 String.fromCharCode(specialKey)
。以下是一些有用的按鍵
- 28:向左(←)
- 29:向右(→)
- 30:向上(↑)
- 31:向下(↓)
- 27:Escape(⎋)
- 11:PageUp(⇞)
- 12:PageDown(⇟)
如需查看 Mac 上支援的特殊按鍵完整清單,請參閱 NSMenuItem.keyEquivalent 和 NSEvent: Function-Key Unicodes。
item.modifiers
用於指定選單項目快捷鍵的修飾鍵的字串。它應該是下列字串的串接:cmd
/ command
/ super
、shift
、ctrl
、alt
。例如:"cmd+shift+alt"
。
cmd
在所有平台上代表不同的按鍵:Windows 上的 Windows 按鍵(Windows)、Linux 上的 Windows 按鍵、Mac 上的 Apple 按鍵(⌘)。super
和 command
是 cmd
的別名。
事件:click
當使用者啟動選單項目時發出。