blockly > ShortcutRegistry

ShortcutRegistry 類別

鍵盤快速鍵登錄機制的類別。這應為單例模式。請勿建立新的例項,並只從 ShortcutRegistry.registry 存取此類別。

Signature:

export declare class ShortcutRegistry 

屬性

屬性 修飾符 類型 說明
註冊資料庫

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,系統就會終止處理作業,並傳回 true。onKeyDown如果傳回 false,系統會繼續處理下一個捷徑 (如果有的話)。- 如果已處理指定鍵碼的所有已註冊捷徑,但沒有任何捷徑傳回 true,onKeyDown 會傳回 false。

register(shortcut, allowOverrides) 註冊鍵盤快速鍵。
removeAllKeyMappings(shortcutName) 移除指定名稱的捷徑的所有鍵盤按鍵對應項目。在變更預設按鍵對應項目,且未知捷徑註冊的按鍵代碼時,此方法非常實用。
removeKeyMapping(keyCode, shortcutName, quiet) 移除按鍵代碼和鍵盤快速鍵之間的對應關係。
reset() 清除並重新建立登錄和鍵盤地圖。
setKeyMap(newKeyMap) 設定鍵盤對應表。設定鍵盤對應表後,系統會覆寫所有預設的鍵盤對應。
unregister(shortcutName) 取消註冊以指定名稱註冊的鍵盤快速鍵。這麼做也會移除參照此捷徑的所有按鍵對應項目。