我有一个输入框,要求用户在我的扩展程序中输入他们的用户名。我希望当用户单击 esc 或取消扩展停止运行时。
这是我到目前为止尝试过的但没有运气(似乎onCancellationRequested
期待一个事件而不是一个方法..
await window.showInputBox(
{prompt: "UserName: ",
placeHolder: "UserName"},
{isCancellationRequested: true, onCancellationRequested: (cancelled)=> {throw new Error('cancelled')}})
这不是CancellationToken
它的用途。它几乎与您想要的相反,它可用于在用户执行任何输入之前以编程方式取消输入弹出窗口。
如果你想知道用户是否取消了输入框,你需要检查文档中Thenable
提到的返回值:showInputBox()
如果输入框被取消(例如按 ESC),则返回值将是未定义的。[...]
vscode.window.showInputBox({prompt: 'UserName', placeHolder: 'UserName'}).then(value => {
if (value === undefined) {
throw new Error('cancelled');
}
// handle valid values
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句