2012-12-03 3 views
5

deaktivieren würde Ich mag die ACE Editors Suchen-Dialog deaktivieren, die durch Drücken der Befehl + F Tastenkombination aufgerufen wird, wenn der Editor den Fokus hat.Wie ACE Redaktion Suche Dialog

Ich habe folgende versucht (unter anderem):

document.body.onkeydown = 
document.body.onkeyup = 
document.body.onkeypress = function(event) {  
    return false; 
}; 

Dies verhindert, dass ein von der Möglichkeit, die normalerweise zu geben, aber nicht stoppen Befehl + A-Taste aus bearbeitet werden.

Wie Befehl + F Kombination, um zu verhindern verarbeitet werden?

Im Idealfall würde Ich mag Lage sein, nur den Befehl + F Kombination zu verhindern, wie ich mit dem anderen Befehl Tastenkombinationen fortgesetzt werden soll.

Ich habe eine JSFiddle for this question eingerichtet.

+1

Ich denke, Sie nähern sich dem falsch. Sie sollten versuchen, den Suchdialog und nicht die Tastenkombination zu deaktivieren. –

Antwort

6

Andrei Andrushkevich's answer ist jetzt eine bessere und einfachere Lösung.


Sie können den mit der Verknüpfung zugeordneten Befehl neu definieren, indem editor.commands.addCommand verwenden, und dann liefern nur eine leere Funktion. Diese benutzerdefinierte Definition hat Vorrang vor der integrierten Definition. In diesem Fall:

editor.commands.addCommand({ 
    name: "unfind", 
    bindKey: { 
     win: "Ctrl-F", 
     mac: "Command-F" 
    }, 
    exec: function(editor, line) { 
     return false; 
    }, 
    readOnly: true 
}) 

Hier ist die updated JSFiddle. Ich habe keine klare Dokumentation gefunden, aber here's the editor.commands definition und here's where .addCommands() is. (Anmerkung:. Code geändert haben kann, da diese Antwort geschrieben wurde)

Herausgegeben gemäß jcubic Kommentar

+0

Das ist es! Vielen Dank! Ich habe mich selbst damit konfrontiert, dass mir nichts dabei einfällt. –

+0

Es gibt auch die Funktion 'addCommand', die nur Objekte akzeptiert. – jcubic

13

Es ist besser zu nutzen 'removeCommand' statt use 'addCommand' mit gefälschten Handler

editor.commands.removeCommand('find');