關於Native Menu(Mac) 2
Thursday, May 14th, 2009上次提到的Mac Native Menu 監聽不到自訂menu item之問題有解答了。
問題關鍵在我的 ApplicationUpdaterUI :ApplicationUpdaterUI 在初始化完成後,會摧毀自訂item的事件發送,所以無法選擇,但是系統預設item依舊運作良好。換句話說,在 ApplicationUpdater 發出 UpdateEvent.INITIALIZED 之前,建立的native menu都會失效(看得到選不到)。 因此必須針對 ApplicationUpdaterUI 監聽事件,之後才加上自訂的menu item,如此才能圓滿達成自定menu item與native menu item 共存的成果。
以下例子: 簡單地在 Mac 的第一個menu item下加入一個”myItem”
ui.addEventListener( UpdaterEvent.INITIALIZED , uiInited );
ui.initalize();
function uiInited( e:UpdaterEvent ):void
{
//取得 native menu, 唯有mac os才會有預設的native menu;
//windows下自己建立一個NativeMenu 實體即可
var m:NativeMenu = NativeApplication.nativeApplication.menu;
//items[0] = 第1個menu
m.items[0].addItem( new NativeMenuItem("myItem") ).addEventListener( Event.SELECT , onSelect );
}
function onSelect( e:Event ):void
{
trace("hello there");
}
