# 自定义快捷键
# 概述
为了让应用层方便地自定义快捷键,Foxit PDF SDK for Web 提供了如 PDFViewer.onShortcutKey
等接口。本文将介绍如何使用这些接口以及相关注意事项。
# 名词定义
为了避免混淆,在开始之前我们定义了以下术语在文档中的语义:
组合键:表示特定的按键组合,例如
Ctrl+Z
是一个组合键,Cmd+Z
是另一个组合键。快捷键:表示能够触发特定功能的组合键,例如,撤销操作的快捷键是
Ctrl+Z
或Cmd+Z
。
# 内置的组合键及描述
在这里,我们列出了 Foxit PDF SDK for Web 中内置的组合键。开发者可以参考此表格,在应用层通过替换内置实现来自定义组合键。
组合键 | 描述 |
---|---|
Esc | 关闭对话框,退出编辑模式或退出搜索面板。 |
Home | 跳转到第一页。 |
End | 跳转到最后一页。 |
Delete | 删除选定的对象。编辑模式下:删除选定的文本对象;非编辑模式下:删除选定的注释对象。 |
PageUp | 当存在垂直滚动条时, 将当前视图向上移动。 |
PageDown | 当存在垂直滚动条时, 将当前视图向下移动。 |
UpArrow | 当存在垂直滚动条时, 将滚动条向上移动。 |
DownArrow | 当存在垂直滚动条时, 将滚动条向下移动。 |
LeftArrow | 当存在水平滚动条时, 将滚动条向左移动。 |
RightArrow | 当存在水平滚动条时, 将滚动条向右移动。 |
Enter | 确认或继续。 |
Ctrl+Z | 撤销。Mac 平台为Cmd+Z 。 |
Ctrl+Y | 重做。Mac 平台为Cmd+Shift+Z 。 |
Ctrl+MouseLeft | 选择多个对象、注释、路径、文本编辑。 |
Ctrl+F | 打开搜索面板。Mac 平台为Cmd+F 。 |
Ctrl+P | 打开打印面板。Mac 平台为Cmd+P 。 |
Ctrl+RightArrow | 打开左侧导航面板。Mac 平台为Cmd+RightArrow 。 |
Ctrl+LeftArrow | 关闭左侧导航面板。Mac 平台为Cmd+LeftArrow 。 |
Ctrl+C | 复制注释(路径、文本编辑、图像)。Mac 平台为Cmd+C 。 |
Ctrl+X | 剪切注释(文本)。Mac 平台为Cmd+X 。 |
Ctrl+V | 粘贴注释(路径、文本编辑、图像)。Mac 平台为Cmd+V 。 |
# 开始自定义
开发者可以通过 PDFViewer.onShortcutKey
接口添加快捷键事件处理函数。如果接收到的快捷键已在 SDK 内定义(如上表所列),将 preventDefaultImplementation
参数设置为 true
将替换 SDK 内部快捷键的实现。否则,当触发快捷键时,SDK 内部实现和开发者自定义的处理函数将同时执行。
# 替换内置快捷键实现
这里我们以打印功能的快捷键为例:
在上述示例中,替换了 SDK 中快捷键的内置实现。当用户按下 Ctrl+P
组合键时,将触发自定义打印实现。您可以在该实现中获取到 print-dialog
显示打印对话框,或使用其他方法来实现自定义打印功能。
# 替换组合键
如果您不想使用 Ctrl+P
触发打印功能,则需要替换 SDK 中的内置实现,并注册一个自定义的快捷键来实现打印功能。以下是示例代码:
在上述示例中,首先使用 PDFViewer.onShortcutKey
注册一个空函数,以替换 SDK 中 Ctrl+P
的内置实现。然后,再为 Ctrl+Alt+P
注册一个事件监听器,当用户按下 Ctrl+Alt+P
时,将调用 pdfui.print()
方法来实现打印功能。
需要注意的是,在替换快捷键的内置实现时,应将 onShortcutKey
接口的第三个参数设置为 true
。这样,自定义实现将替换 SDK 的默认内置实现,而不是与之并存。
# 删除快捷键监听事件
在某些情况下,您可能需要在特定条件下删除快捷键监听事件。例如,在文档打开时,您可以监听 Ctrl+W
事件来关闭文档。但在文档关闭后,您需要取消 Ctrl+W
事件的监听,以避免不必要的操作。为此,PDFViewer.onShortcutKey
接口会返回一个函数,您可以使用该函数来删除快捷键事件的监听。以下是一个示例:
在上述示例中,首先在 openFileSuccess
事件回调中使用 PDFViewer.onShortcutKey
监听 Ctrl+Shift+K
事件,并将返回的函数保存到变量 removeShortcutKeyHandler
中。当要关闭文档时,可以调用 removeShortcutKeyHandler
函数来删除对 Ctrl+Shift+K
事件的监听。
需要注意的是,如果您使用了多个 PDFViewer.onShortcutKey
监听事件,每个事件都会返回一个相应的函数,您需要分别保存每个函数,并在需要时分别调用它们。
# 禁用/启用全局快捷键
在某些情况下,您可能需要禁用快捷键功能,可以通过使用 setEnableShortcutKey
接口来实现。该接口接受一个布尔值参数。如果为 true,则启用快捷键功能,如果为 false ,则禁用快捷键功能。
上述示例禁用了快捷键功能,则所有的组合键都将不会被触发。要重新启用快捷键功能,您可以调用 pdfui.setEnableShortcutKey(true)
。
# 注意事项
为了更符合 Mac 用户的使用习惯,我们在 Mac 平台上使用了不同的组合鍵。通常情况下,我们使用 Cmd
键代替 Ctrl
键。例如,在 Windows/Linux 上,"撤销"的快捷键是 Ctrl+Z
,而在 Mac 上则是 Cmd+Z
。
如果您想替换"撤销"功能的快捷键,需要根据系统类型选择这两个组合键中的一个来监听快捷键事件。
← 缩略图 可扩展组件与使用指南 →