gpt4 book ai didi

node.js - 在 Electron 中调用 prompt()(来自外部 API)不起作用

转载 作者:搜寻专家 更新时间:2023-11-01 00:00:39 55 4
gpt4 key购买 nike

我正在使用 ace Electron 内部的编辑器。当在编辑器中按下 ctrl+l 时,ace 会调用 prompt()。但是 Electron 不支持 prompt(),因此该功能不起作用。

zcbenz commented on Oct 26, 2014:

There is no native prompt dialogs in most GUI toolkits, so implementing prompt in atom-shell would require writing the prompt dialog from ground up on all platforms. Due to the rare use of prompt, I think it doesn't deserve to do all the work, and it is very easy to use a web implemented solution for this.

So I'm closing this as won't fix.

我现在已经通过扩展 ace 解决了这个问题,但是如果另一个外部模块调用 prompt() 我将不得不再次做这样的事情。下面的代码绑定(bind)到 ctrl+l,然后将 prompt() 替换为 vex (又一个依赖项)然后调用 gotoLine():

editor.commands.addCommand({
name: "replace",
bindKey: {
win: "Ctrl-l",
mac: "Command-l"
},
exec: function(editor) {
vex.dialog.open({ // ********** prompt() **********
message: 'Enter your line number:',
buttons: [
$.extend({}, vex.dialog.buttons.YES, {
text: 'goto line'
})
],
input: "<input name=\"line\" type=\"text\" placeholder=\"line\" required />\n",
callback: function(data) {
if (data) {
editor.gotoLine(data.line)
editor.focus()
}
}
})
}
})

理想情况下,我会实例化另一个模块(只添加一行),它将提示实现为在 Electron 内部工作的同步函数。我想知道是否已经有这个模块?

最佳答案

试试 smalltalk,它是一个基于 Promise 的警报、确认和提示解决方案:https://www.npmjs.com/package/smalltalk

关于node.js - 在 Electron 中调用 prompt()(来自外部 API)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34864716/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com