blockly > ShortcutRegistry

ShortcutRegistry 类

键盘快捷键注册表的类。此类应为单例。您不应创建新实例,并且只能通过 ShortcutRegistry.registry 访问此类。

Signature:

export declare class ShortcutRegistry 

属性

属性 修饰符 类型 说明
registry

static

readonly

ShortcutRegistry

方法

方法 修饰符 说明
addKeyMapping(keyCode, shortcutName, allowCollision)

在按键代码和键盘快捷键之间添加映射。

通常,任何给定按键代码只能映射到一个快捷键,但将 allowCollisions 设为 true 后,一个键盘可以映射到多个快捷键。在这种情况下,使用给定按键调用 onKeyDown 时,它会按相反的顺序(从最近映射的到最早映射的)处理映射的快捷键。

createSerializedKey(keyCode, modifiers) 创建将在按键映射中使用的序列化按键码。
getKeyCodesByShortcutName(shortcutName) 获取具有指定名称的快捷方式注册的序列化按键代码。
getKeyMap() 获取当前的按键映射。
getRegistry() 获取键盘快捷键的注册表。
getShortcutNamesByKeyCode(keyCode) 获取已注册到给定按键代码的快捷键。
onKeyDown(workspace, e)

处理按键按下事件。

- 系统会按注册时间(从最近到最早)处理映射到导致触发事件 e 的按键代码的所有 KeyboardShortcut。- 如果快捷方式的 preconditionFn 存在,系统会调用它。如果 preconditionFn 返回 false,系统会跳过快捷方式的 callback 函数。系统会继续处理下一个快捷方式(如果有)。- 然后,系统会调用快捷方式的 callback 函数。如果它返回 true,则处理将终止,并且 onKeyDown 将返回 true。如果返回 false,则会继续使用下一个快捷方式(如果有)。- 如果已处理给定按键代码的所有已注册快捷方式,但没有任何快捷方式返回 true,则 onKeyDown 将返回 false。

register(shortcut, allowOverrides) 注册键盘快捷键。
removeAllKeyMappings(shortcutName) 移除具有给定名称的快捷方式的所有按键映射。当更改默认按键映射且快捷键注册的按键代码未知时,此参数非常有用。
removeKeyMapping(keyCode, shortcutName, quiet) 移除按键代码与键盘快捷键之间的映射。
reset() 清除并重新创建注册表和 keyMap。
setKeyMap(newKeyMap) 设置按键映射。设置按键映射会替换所有默认按键映射。
unregister(shortcutName) 取消注册使用指定名称注册的键盘快捷键。这还会移除引用此快捷键的所有按键映射。