Ace编辑器上的Keydown事件

时间:2015-01-20 11:14:38

标签: javascript ace-editor

在这个神奇的编辑器(Ace: Code Editor)上,有一个我可以获得on change事件的方法,是否有on keydown个事件?或者我可以模拟它?

2 个答案:

答案 0 :(得分:8)

没有keydown事件,您可以在editor.textInput.getElement()返回的textarea上添加keydown事件侦听器,但更好的方法是使用editor.commands.addCommand

editor.commands.addCommand({
    name: "...",
    exec: function() {},
    bindKey: {mac: "cmd-f", win: "ctrl-f"}
})

editor.keyBinding.addKeyboardHandler

答案 1 :(得分:0)

我在the documentation中找不到它,但是在this discussion中,我发现了关于editor.commands.on('afterExec', ...) API的信息:

editor.commands.on('afterExec', eventData => {
    if (eventData.command.name === 'insertstring') {
        console.log('User typed a character: ' + eventData.args);
    }
});
在编辑器中的每个命令上都会触发

afterExec命令包括诸如键入文字, ctrl + space 上的完成弹出窗口外观等操作……

这不是keydown事件的直接类似物,但这是我来这里时一直在关注的事情,因此希望您会发现它很有用。