Shortcut(快捷键)


Shortcut 是全局的快捷键(系统级热键),成功注册后,即使您的应用 没有 获得焦点,也仍然会生效。

Shortcut 继承自 EventEmitter,每次用户按下注册的快捷键,该快捷键的实例就会接收到一个 active 事件。

示例

var option = {
  key : "Ctrl+Shift+A",
  active : function() {
    console.log("全局桌面快捷键:" + this.key + "被触发"); 
  },
  failed : function(msg) {
    // :(, |key| 注册失败,或无法解析 |key|
    console.log(msg);
  }
};

// 使用 |option| 创建一个快捷键
var shortcut = new nw.Shortcut(option);

// 注册一个全局桌面快捷键,即使应用没有获得焦点也能生效
nw.App.registerGlobalHotKey(shortcut);

// 如果 |shortcut| 注册成功,当用户按下 "Ctrl+Shift+A" 时,|shortcut| 就会接收到一个 "active" 事件

// 您也可以侦听快捷键的触发和失败事件
shortcut.on('active', function() {
  console.log("全局桌面快捷键:" + this.key + "被触发"); 
});

shortcut.on('failed', function(msg) {
  console.log(msg);
});

// 注销全局桌面快捷键
nw.App.unregisterGlobalHotKey(shortcut);

new Shortcut(option)

  • option {Object}
    • key {String} 代表快捷键的串联字符串,如 "ctrl+shift+a"。参考 shortcut.key 属性。
    • active {Function} Optional 快捷键被成功触发时的回调函数。参考 shortcut.active 属性。
    • failed {Function} Optional 快捷键注册失败时的回调函数。参考 shortcut.failed 属性。

创建一个新的快捷键实例,option 是一个包含快捷键初始设置的对象。

shortcut.key

获取快捷键的 key。这是一个代表快捷键的串联字符串,由任意个修饰键和一个主键组成,如 "Ctrl+Alt+A"。 可以只有一个主键。该值大小写不敏感。

支持的修饰键:

  • Ctrl
  • Alt
  • Shift
  • Command: Command 在 Mac 上为 Apple 键 (),在 Windows 和 Linux 上为 Windows 键。

支持的主键:

  • 字母:A-Z
  • 数字:0-9
  • 功能键:F1-F24
  • Comma
  • Period
  • Tab
  • Home / End / PageUp / PageDown / Insert / Delete
  • Up / Down / Left / Right
  • MediaNextTrack / MediaPlayPause / MediaPrevTrack / MediaStop
  • Comma,
  • Period.
  • Tab\t
  • Backquote`
  • Enter\n
  • Minus-
  • Equal=
  • Backslash\
  • Semicolon;
  • Quote'
  • BracketLeft[
  • BracketRight[
  • Escape
  • DOM Level 3 W3C KeyboardEvent Code Values

不带修饰键的单键快捷键

App.registerGlobalHotKey() 支持注册只有一个主键的单键快捷键(如 { key: "A" }),但在注销该快捷键之前,用户将无法正常使用 “A” 键。当然,这在某些场景下会很有用,如监听多媒体按键。
在使用不带修饰键的快捷键之前,请确保这就是您需要的

shortcut.active

获取或设置快捷键的 active 回调函数。该函数会在用户按下快捷键时调用。

shortcut.failed

*获取或设置快捷键的 failed 回调函数。该函数会在解析快捷键的 key 失败或快捷键注册失败时调用。

事件:active

shortcut.active

事件:failed

shortcut.failed