创建应用程序菜单或窗口菜单

Adobe AIR 1.0 和更高版本

使用 MenuBuilder 框架创建应用程序菜单或窗口菜单时,菜单数据结构中的顶级对象或节点对应于菜单栏中显示的项目。嵌套在这些顶级项目之一中的项目定义各个菜单命令。同样,这些菜单项可以包含其他项目。在此情况下,菜单项是一个子菜单,而不是一个命令。当用户选择菜单项时,它将展开自己的菜单项。

可以使用 Menu.setAsMenu() 方法将菜单设置为执行调用时所在的窗口的应用程序菜单或窗口菜单。 setAsMenu() 方法采用一个参数:要使用的 NativeMenu 对象。以下示例加载 XML 文件,并将生成的菜单设置为应用程序菜单或窗口菜单:

var windowMenu = air.ui.Menu.createFromXML("windowMenu.xml"); 
air.ui.Menu.setAsMenu(windowMenu);

在支持窗口菜单的操作系统上, setAsMenu() 调用将此菜单设置为当前窗口(表示为 window.nativeWindow 的窗口)的窗口菜单。在支持应用程序菜单的操作系统上,此菜单用作应用程序菜单。

Mac OS X 将一组标准菜单定义为默认应用程序菜单,它们在每个应用程序中都具有一组相同的菜单项。这些菜单包括其名称与应用程序名称、“Edit”(编辑)菜单和“Window”(窗口)菜单匹配的应用程序菜单。通过调用 Menu.setAsMenu() 方法将 NativeMenu 对象指定为应用程序菜单时,NativeMenu 中的项目将插入到标准菜单结构中的“Edit”(编辑)菜单和“Window”(窗口)菜单之间。标准菜单不会被修改或替换。

如果您愿意,可以替换标准菜单,而不是补充它们。若要替换现有菜单,请将值为 true 的第二个参数传递给 setAsMenu() 调用,如本例所示:

air.ui.Menu.setAsMenu(windowMenu, true);