托盤
Tray
是不同平台上不同控制項的抽象,通常它是一個顯示在作業系統通知區域的小圖示。在 Mac OS X 上,它稱為 狀態項目
,在 GTK 上,它稱為 狀態圖示
,在 Windows 上,它稱為 系統托盤圖示
。
概要
// Create a tray icon var tray = new nw.Tray({ title: 'Tray', icon: 'img/icon.png' }); // Give it a menu var menu = new nw.Menu(); menu.append(new nw.MenuItem({ type: 'checkbox', label: 'box1' })); tray.menu = menu; // Remove the tray tray.remove(); tray = null;
使用包含頁面導覽的 Tray
在頁面中建立的托盤,在重新載入或導航後將無法運作。原因是托盤甚至網頁,在導航後將會被 JS 引擎當作垃圾回收,以防止記憶體外洩。因此建議在背景頁面中使用托盤,它會存在於應用程式的生命週期中。請參閱 bg-script
和 main
,了解如何在背景頁面中執行腳本。
new Tray(選項)
選項
{物件}
標題
{字串}
標題工具提示
{字串}
工具提示圖示
{字串}
圖示替代圖示
{字串}
替代圖示圖示為範本
{布林值}
圖示是否為範本功能表
{功能表}
快顯功能表
建立一個新的 托盤
,選項
是包含 托盤
初始設定的物件。每個欄位在 托盤
中都有自己的屬性,請參閱每個屬性的文件以取得詳細資訊。
tray.title
取得或設定托盤的 標題
。
在 Mac OS X 中,標題
會與其 圖示
一起顯示在狀態列上,但它不會影響 GTK 和 Windows,因為後兩個平台只支援將托盤顯示為圖示。
tray.tooltip
取得或設定托盤的 工具提示
。當您將滑鼠游標懸停在 托盤
上時,工具提示
會顯示。
注意事項
工具提示
會顯示在所有三個平台上。應該從 托盤
屬性設定,而不是從 選項
物件建構函式設定。
tray.icon
取得或設定托盤的 圖示
,圖示
必須是圖示檔案的路徑。它可以是指向應用程式中圖示的相對路徑,或是指向使用者系統中檔案的絕對路徑。
Mac
Mac OS X 注意:當在通知內容中使用時,png 圖示不會像在 Windows 通知區域中縮小,而是以 1:1 的比例顯示。
tray.alticon (Mac)
取得或設定備用(活動)托盤圖示。
tray.iconsAreTemplates (Mac)
取得或設定 icon
和 alticon
影像是否視為「範本」(預設為 true
)。當屬性設定為 true
時,影像將視為「範本」,系統會根據狀態項目各種狀態(例如深色選單、淺色選單等)自動確保適當的樣式。範本影像應僅包含黑色和透明色彩,並可以使用影像中的 alpha 通道調整黑色內容的不透明度。
tray.menu
取得或設定托盤的 menu
,當您按一下托盤圖示時,將顯示 menu
。
在 Mac OS X 上,當您按一下托盤時,將顯示選單(這是 Mac OS X 上托盤圖示唯一可用的動作)。在 Windows 和 Linux 上,當您使用滑鼠右鍵按一下托盤時,將顯示選單,使用滑鼠左鍵按一下會傳送 click
事件,不會顯示選單。
為了減少不同平台的差異,設定 menu
屬性是將選單繫結至托盤的唯一方式,無法在 Linux 和 Windows 上使用滑鼠左鍵按一下來彈出選單。
tray.remove()
移除托盤。
移除後,您將無法再次顯示它,您應該將托盤變數設定為 null
以進行垃圾回收。沒有辦法暫時隱藏托盤圖示。
事件:click
當使用者使用滑鼠左鍵按一下選單項目時觸發。
您無法使用滑鼠右鍵按一下來捕捉,因為它用於顯示選單。即使您未將選單繫結至托盤,您仍然無法聆聽它。雙按事件也會被忽略。
Mac
NW.js 不支援選單列(⌘+拖曳),因為它會禁止 NW.js 應用程式在 App Store 中散布。