【问题标题】:Allow new value on QuickPick in a VSCode extension在 VSCode 扩展中允许 QuickPick 上的新值
【发布时间】:2018-06-17 11:00:07
【问题描述】:

我想向用户显示带有一些选项的输入,但用户可以回答一个新选项。 使用 showQuickPick 我可以显示一些选项,但如果用户回答不同的选项,则返回是 undefined

有可能做我想做的事吗?

我已经考虑过创建一个New选项,然后向用户显示InputBox,但我不希望用户需要回答两个问题。

【问题讨论】:

    标签: visual-studio-code vscode-extensions


    【解决方案1】:

    我使用了一种解决方案,其中 我将用户输入注入到项目列表中
    效果很好:

    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();
        })
    }
    
    

    如果您需要进一步的解释,请告诉我

    【讨论】:

      【解决方案2】:

      听起来您可能对本期所采用的方法感兴趣?

      https://github.com/microsoft/vscode/issues/89601

      【讨论】:

        猜你喜欢
        • 2023-02-24
        • 1970-01-01
        • 2018-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多