跳至主要内容

keypress-on-todo

描述

当使用键盘导航时任务处于焦点状态时触发

用法

"keypress-on-todo": ({
code: string,
event: KeyboardEvent
}) => void;

参数

keypress-on-todo 事件的回调函数可接收一个包含以下参数的对象:

  • code - (必填)被按下的键或组合键的代码(小写)。键盘快捷键及其代码的完整列表见下文
  • event - (必填)原生 event 对象
信息

如需处理内部事件,可以使用 Event Bus 方法

示例

const { ToDo, Toolbar } = todo;
const {tasks, projects, users} = getData();

const list = new ToDo("#root", {
tasks,
projects,
users
});

const toolbar = new Toolbar("#toolbar", {
api: list.api,
});

// 订阅 "keypress-on-todo" 事件
list.api.on("keypress-on-todo", ({code, event}) => {
console.log("The", code, "key is pressed");
});

键盘快捷键

默认模式

以下快捷键在内联编辑器关闭时生效。

键盘快捷键键代码说明
Escapeescape若任务的菜单已打开,则关闭菜单。再次按下将关闭编辑器、重置过滤,并收起 Toolbar 中的搜索结果
提示

以下键代码在焦点位于 Toolbar 搜索框时不可用。

键盘快捷键键代码说明
Enterenter在当前所选任务的同一层级新建一个任务,将选中状态移至新任务并打开编辑器
ArrowUparrowup将选中状态向上移动到前一个任务
ArrowDownarrowdown将选中状态向下移动到下一个任务
Ctrl(Cmd)+Enterctrl+enter打开所选任务的编辑器
Ctrl(Cmd)+Click /
Ctrl(Cmd)+Shift+Click
在 v1.1 中新增
ctrl /
ctrl+shift
选择多个任务及其所有子任务。
若任务当前已选中则取消选中,此外:
- 若任务的父任务也已选中,则同时取消选中该任务及其父任务。
- 若任务的子任务也已选中,则仅取消选中该任务本身。
Shift+Click
在 v1.1 中新增
shift选择一个范围内的任务
Shift+ArrowUp
在 v1.1 中新增
shift+arrowup选中当前任务上方的任务。
若上方任务当前已选中则取消选中
Shift+ArrowDown
在 v1.1 中新增
shift+arrowdown选中当前任务下方的任务(及其所有子任务)。
若下方任务当前已选中则取消选中
Ctrl+ArrowUpctrl+arrowup在同一层级内将所选任务向上移动
Ctrl+ArrowDownctrl+arrowdown在同一层级内将所选任务向下移动
Spacespace根据任务的初始状态将其标记为完成或未完成
Delete /
Backspace
delete /
backspace
按以下逻辑删除所选任务:
- 删除子任务后,选中状态向下/向上移动,直至到达父任务
- 删除父任务后,若存在下一个父任务则选中状态移至该父任务;否则移至上一个父任务
ArrowRightarrowright展开已折叠的父任务
ArrowLeftarrowleft折叠已展开的父任务。若任务已折叠或没有子任务,则将选中状态移至父任务
Tabtab将任务的嵌套层级降低一级
Shift+Tabshift+tab将任务的嵌套层级提升一级
Ctrl(Cmd)+Dctrl+d在同一层级复制所选任务
Ctrl(Cmd)+Cctrl+c将所选任务(包含所有子任务)复制到剪贴板
Ctrl(Cmd)+Vctrl+v将复制的任务粘贴到与当前所选任务相同的层级。可将复制的任务粘贴到任意层级,复制任务的结构会被保留
Ctrl(Cmd)+Zctrl+z撤销上一次操作
Ctrl(Cmd)+Y /
Ctrl(Cmd)+Shift+Z
ctrl+y /
ctrl+shift+z
重做已撤销的操作
Alt+1 /
Alt+2 /
Alt+3
alt+1 /
alt+2 /
alt+3
设置所选任务的优先级(对应 priorities 相应条目的快捷键)
Alt+0alt+0重置所选任务的优先级

编辑模式

以下快捷键在内联编辑器打开时生效。

键盘快捷键键代码说明
Escapeescape关闭编辑器且不保存任何更改
Enterenter关闭编辑器并保存更改
Shift+Entershift+enter创建新段落