在 NW.js 应用程序中为 Mac OS 启用应用程序菜单
Enabling application menu in a NW.js app for Mac OS
我正在使用 NW.js to create a standalone application for Mac OS X. The application launches fine, but the application menu (just to the right of the Apple menu) contains no items. I had understood that a default set of menus and menu items would be created, as shown in this screenshot, taken from Arvind Ravulavaru' tutorial。
这是我的基本文件:
index.html
<!DOCTYPE html>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
package.json
{
"name": "Hello World"
, "version": "0.0.1"
, "description": "Barebones NW.js app"
, "main": "index.html"
, "window": {
"toolbar": false
, "width": 800
, "height": 600
}
, "scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
}
, "author": ""
, "license": "MIT"
}
这是我的步骤:
- Select index.html 和 package.json 并使用 Finder 的文件 > 压缩 2 个项目从它们创建一个 ZIP 文件。
- 重命名此 ZIP 文件 app.nw
- 下载 64-bit build of NW.js for Mac OS X
- 解压下载的文件,创建一个包含nwjs.app
的文件夹
- 右键单击 nwjs.app 并从上下文菜单中选择显示包内容
- 导航到 nwjs。app/Content/Resources
- 将 app.nw 文件放入此资源文件夹
- 修改 nwjs.app/Content/Info.plist 文件,使
<key>CFBundleName</key>
与 <string>Hello World</string>
相关联。 (这定义了应用程序菜单的名称。)
- 将 nwjs.app 重命名为 HelloWorld.app
- 右键单击 HelloWorld.app 和 select 从上下文菜单打开
- 输入管理员用户名和密码以允许应用程序打开
- 单击“Hello World”应用程序菜单 - 除了突出显示外没有任何反应
我需要做什么才能获得功能性应用程序菜单,其中包含用于关闭应用程序的退出项?
A Google 搜索 nwjs default menu mac led me to Dickson Tam's nwjs-osx-menu npm package。
我的额外步骤是:
- 在终端 window 中,
cd
到包含主要 index.html 文件的文件夹
- 运行
npm install nwjs-osx-menu
。这会添加(包含一个节点模块文件夹)一个名为 nwjs-osx-menu. 的文件夹
- 在文本编辑器中,打开文件 nwjs-osx-menu/index.js
- 将行
mb.createMacBuiltin('My App');
更改为 mb.createMacBuiltin('Hello World');
- 创建一个新的 ZIP,包括新的 nwjs-osx-menu 文件夹
- 将 zip 文件重命名为 app.nw
- 将 HelloWorld.app/Content/Resources/app.nw 中的现有文件替换为新文件
- 启动 HelloWorld.app
我正在使用 NW.js to create a standalone application for Mac OS X. The application launches fine, but the application menu (just to the right of the Apple menu) contains no items. I had understood that a default set of menus and menu items would be created, as shown in this screenshot, taken from Arvind Ravulavaru' tutorial。
这是我的基本文件:
index.html
<!DOCTYPE html>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
package.json
{
"name": "Hello World"
, "version": "0.0.1"
, "description": "Barebones NW.js app"
, "main": "index.html"
, "window": {
"toolbar": false
, "width": 800
, "height": 600
}
, "scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
}
, "author": ""
, "license": "MIT"
}
这是我的步骤:
- Select index.html 和 package.json 并使用 Finder 的文件 > 压缩 2 个项目从它们创建一个 ZIP 文件。
- 重命名此 ZIP 文件 app.nw
- 下载 64-bit build of NW.js for Mac OS X
- 解压下载的文件,创建一个包含nwjs.app 的文件夹
- 右键单击 nwjs.app 并从上下文菜单中选择显示包内容
- 导航到 nwjs。app/Content/Resources
- 将 app.nw 文件放入此资源文件夹
- 修改 nwjs.app/Content/Info.plist 文件,使
<key>CFBundleName</key>
与<string>Hello World</string>
相关联。 (这定义了应用程序菜单的名称。) - 将 nwjs.app 重命名为 HelloWorld.app
- 右键单击 HelloWorld.app 和 select 从上下文菜单打开
- 输入管理员用户名和密码以允许应用程序打开
- 单击“Hello World”应用程序菜单 - 除了突出显示外没有任何反应
我需要做什么才能获得功能性应用程序菜单,其中包含用于关闭应用程序的退出项?
A Google 搜索 nwjs default menu mac led me to Dickson Tam's nwjs-osx-menu npm package。
我的额外步骤是:
- 在终端 window 中,
cd
到包含主要 index.html 文件的文件夹 - 运行
npm install nwjs-osx-menu
。这会添加(包含一个节点模块文件夹)一个名为 nwjs-osx-menu. 的文件夹
- 在文本编辑器中,打开文件 nwjs-osx-menu/index.js
- 将行
mb.createMacBuiltin('My App');
更改为mb.createMacBuiltin('Hello World');
- 创建一个新的 ZIP,包括新的 nwjs-osx-menu 文件夹
- 将 zip 文件重命名为 app.nw
- 将 HelloWorld.app/Content/Resources/app.nw 中的现有文件替换为新文件
- 启动 HelloWorld.app