通常,不管要创建的菜单类型是什么,使用 MenuBuilder 框架创建菜单时都需要执行三个步骤:
-
定义菜单结构:
创建一个文件,其中包含定义菜单结构的 XML 或 JSON。对于某些菜单类型,顶级菜单项是菜单(例如,在窗口菜单或应用程序菜单中)。对于其他菜单类型,顶级项目是单个菜单命令(比如在上下文菜单中)。若要查看定义菜单结构的格式的详细信息,请参阅
定义 MenuBuilder 菜单结构
。
-
加载菜单结构:
调用合适的 Menu 类方法(
Menu.createFromXML()
或
Menu.createFromJSON()
)以加载菜单结构文件,并将其转换为实际的菜单对象。两种方法都返回一个 NativeMenu 对象,然后可以将此对象传递给该框架的菜单设置方法之一。
-
分配菜单:
按照菜单的使用方式调用合适的 Menu 类方法。选项是:
-
Menu.setAsMenu()
,用于窗口菜单或应用程序菜单
-
Menu.setAsContextMenu()
,将该菜单显示为 DOM 元素的上下文菜单
-
Menu.setAsIconMenu()
,将该菜单设置为系统任务栏或停靠栏图标的上下文菜单
确定何时执行代码很重要。尤其是,必须在创建实际操作系统窗口之前分配窗口菜单。任何将菜单设置为窗口菜单的
setAsMenu()
调用都必须直接在 HTML 页中执行,而不是在
onload
或其他事件处理函数中执行。在操作系统打开窗口之前,必须运行创建菜单的代码。同时,任何引用 DOM 元素的
setAsContextMenu()
调用都必须在创建此 DOM 元素之后发生。最安全的方法是将包含菜单分配代码的
<script>
块放在位于 HTML 页末尾的结束标记
</body>
以内。
|
|
|