【发布时间】:2018-06-17 11:00:07
【问题描述】:
我想向用户显示带有一些选项的输入,但用户可以回答一个新选项。
使用 showQuickPick 我可以显示一些选项,但如果用户回答不同的选项,则返回是 undefined。
有可能做我想做的事吗?
我已经考虑过创建一个New选项,然后向用户显示InputBox,但我不希望用户需要回答两个问题。
【问题讨论】:
标签: visual-studio-code vscode-extensions
我想向用户显示带有一些选项的输入,但用户可以回答一个新选项。
使用 showQuickPick 我可以显示一些选项,但如果用户回答不同的选项,则返回是 undefined。
有可能做我想做的事吗?
我已经考虑过创建一个New选项,然后向用户显示InputBox,但我不希望用户需要回答两个问题。
【问题讨论】:
标签: visual-studio-code vscode-extensions
我使用了一种解决方案,其中 我将用户输入注入到项目列表中。
效果很好:
const choices = ['a', 'b']
async function getUserSelectdValue() {
return new Promise((resolve) => {
const quickPick = window.createQuickPick();
quickPick.items = choices.map(choice => ({ label: choice }));
quickPick.title = 'Choose your favorite value:'
quickPick.onDidChangeValue(() => {
// INJECT user values into proposed values
if (!choices.includes(quickPick.value)) quickPick.items = [quickPick.value, ...choices].map(label => ({ label }))
})
quickPick.onDidAccept(() => {
const selection = quickPick.activeItems[0]
resolve(selection.label)
quickPick.hide()
})
quickPick.show();
})
}
如果您需要进一步的解释,请告诉我
【讨论】:
听起来您可能对本期所采用的方法感兴趣?
【讨论】: