QuickInput 中的 MultiStepInput 不能正常工作

作者: Borvik创建于 2019年3月16日更新于 2025年12月16日
标签bug

我试图导航到示例文件 preview.gif,但一旦我在第一步 quickPick 中选择了选项,第二步 inputBox 就没有出现。在调试过程中,我将断点放在了 MultiStepInput.showInputBox 方法中的 this.current.show() 语句上。断点被触发,我按了 resume 键。第二步随后出现了 - 但尝试将焦点放在它上会导致失败。因此,我添加了控制台日志以查看可能发生的情况,并获得了以下输出。image 尽管 inputBox 似乎已显示 - 但它立即被隐藏。由于设置了 shouldResume,看起来它正在等待该结果,但它永远不会完成(作为示例代码 - 既没有调用 resolve,也没有调用 reject)。如果我设置了 ignoreFocusOut,窗口将保留,但没有焦点 - 这当然不是理想的用户体验。如果我让 shouldResume 解析为 true,则我可以看到 inputBox 被创建,立即隐藏,然后再次创建 - 这次焦点不是问题,但通过 Esc 进行取消。使用断点技巧使下一个窗口保留,并使用 Chrome/Electron 开发者工具窗口,我可以看到 document.activeElement 已正确设置为 inputBox 中的输入字段,但当我尝试将焦点设置为窗口时,焦点转移到 body.monaco-shell:image 我附上了修改后的 multiStepInput.ts 以供参考。multiStepInput.zip

内容来源: microsoft/vscode-extension-samples