【问题标题】:How to remove the 'OK' button from QuickPick如何从 QuickPick 中删除“确定”按钮
【发布时间】:2019-09-26 10:59:58
【问题描述】:

我正在使用 Typescript 开发一个 VS-Code 扩展。

在其中一个流程中,它使用以下 API 创建一个 QuickPick 菜单:

let quickPick: vscode.QuickPick<vscode.QuickPickItem> = vscode.window.createQuickPick();
quickPick.items = this.getValues();
quickPick.canSelectMany = true; // Enable checkboxes

// Set listeners
quickPick.onDidChangeSelection(items => {
    // --> Do an important action here <--
});
quickPick.show();

当用户点击其中一个复选框时,动作会立即发生 -> 在我的场景中不需要OK 按钮。

有人知道如何删除OK 按钮吗?

谢谢。

【问题讨论】:

    标签: typescript vscode-extensions


    【解决方案1】:

    似乎调用quickPick.ok(false) 来隐藏按钮会起作用。

    但是查看the code ok 按钮总是为canSelectMany QuickPicks 呈现。

    您可以将quickPick.customButton(true)quickPick.customLabel("your label") 一起使用来替换ok 按钮。

    但是,当我查看您的方案时,如果每次单击复选标记都已执行该操作,则您可能不需要多选。复选标记通常仅用于标记要发生的多件事,因此可以使用 OK 按钮来运行组合操作。

    【讨论】:

    • 谢谢,但在“vscode.QuickPick”中无法访问“ok”、“customButton”和“customLabel”。我在这里错过了什么吗?
    • 它在 7 个月前通过此 PR 添加为公共方法:github.com/microsoft/vscode/commit/…
    • 它尚未添加到“github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/…”。但是,我接受了您的回答,因为现在我有了更好的理解。谢谢。
    • 有趣。我原以为类型定义是从源代码生成的,而不是手动生成的。也许在那里制造一个问题?
    • 他们有将近 3000 个未解决的问题。我会考虑创建一个拉取请求。
    【解决方案2】:

    只需添加quickPick.ok(false) 即可隐藏您的确定按钮。

    您还可以使用 quickPick.customButton(true)quickPick.customLabel("label") 自定义您的 ok 按钮以替换 ok 并使用您的自定义 ok 按钮进行广告

    【讨论】:

    • 谢谢,但如果我没有遗漏什么,则无法在 vscode npm 库中访问此 API。
    猜你喜欢
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 2016-05-12
    相关资源
    最近更新 更多