2012-12-03 7 views
5

Chciałbym wyłączyć dialogowe Znajdź ACE redaktora, który jest wywoływany przez naciśnięcie Komenda + F kombinację klawiszy, gdy edytor ma ostrość.Jak wyłączyć Find ACE redakcji Dialog

Próbowałem następujące (między innymi):

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

Zapobiega to jedną z możliwości normalnie wpisać, ale nie zatrzymuje komenda + Kluczowym z przetwarzane.

Jak zrobić, aby zapobiec poleceń + F kombinacji z przetwarzane?

Idealnie chciałbym być w stanie zapobiec tylko polecenie + F kombinację, jak chcę kontynuować przy użyciu innych komenda kombinacji klawiszy.

Ustawiłem JSFiddle for this question.

+1

Myślę, że podchodzisz do tego źle. Powinieneś próbować wyłączyć okno dialogowe wyszukiwania, a nie skrót klawiszowy. –

Odpowiedz

6

Andrei Andrushkevich's answer jest teraz lepszym i prostszym rozwiązaniem.


Można zmienić polecenia związanego z skrótu za pomocą editor.commands.addCommand, a potem po prostu dostarczyć funkcja pusta. Ta niestandardowa definicja będzie miała pierwszeństwo przed wbudowaną. W takim przypadku:

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

Oto updated JSFiddle. Nie znalazłem jasnej dokumentacji, ale here's the editor.commands definition i here's where .addCommands() is. (Uwaga:. Kod mogły ulec zmianie, ponieważ ta odpowiedź została napisana)

Zmieniano zgodnie jcubic w komentarzu

+0

To jest to! Dziękuję Ci bardzo! Facepalming się za nic nie wymyślić tego się. –

+0

Istnieje również funkcja 'addCommand', która akceptuje właśnie obiekt. – jcubic

13

Lepiej użyć „removeCommand” zamiast użycia „addCommand” fałszywych obsługi

editor.commands.removeCommand('find');