【发布时间】:2016-01-18 21:52:23
【问题描述】:
我在电子内部使用ace 编辑器。在编辑器中按下ctrl+l 时,ace 会调用prompt()。但是 Electron 不支持prompt(),所以功能不起作用。
zcbenz commented on Oct 26, 2014:
大多数 GUI 工具包中没有原生提示对话框,所以 在 atom-shell 中实现提示需要编写提示 在所有平台上从头开始对话。由于很少使用提示, 我认为它不值得做所有的工作,而且很容易 为此使用网络实现的解决方案。
所以我要关闭它,因为它无法修复。
我现在已经通过扩展 ace 解决了这个问题,但是如果另一个外部模块调用 prompt() 我将不得不再次执行类似的操作。下面的代码绑定到ctrl+l,然后用vex(又一个依赖)替换prompt(),然后调用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()
}
}
})
}
})
理想情况下,我只需实例化另一个模块(仅添加一行),它将提示实现为在电子内部工作的同步函数。我想知道是否已经有一个模块?
【问题讨论】:
-
我不明白你在问什么。您在将 ACE api 集成到您的电子应用程序中时遇到问题吗?如果有,具体是什么问题?
-
嗨,乔希,感谢您查看这个问题。我试图改进我的问题。我希望现在可以更好地理解它,因为我的问题不是很清楚。
标签: node.js ace-editor electron