2012-12-03 14 views
5

を無効にするにはどうすればエディタにフォーカスがあるとき コマンド + Fキーの組み合わせを押すことによって呼び出されるACEエディタの検索ダイアログを、無効にしたいと思います。ACEエディタの[検索]ダイアログ

私は(特に)以下を試してみた:処理されてからキーを

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

これは、通常、入力することができることから1を防ぎますが、コマンドを停止していません +

どのようにして防止するかコマンド + F組み合わせは処理されますか?

私は他のコマンドにキーの組み合わせを使用し続けたいと理想的には私は、唯一のコマンド + F組み合わせを防ぐことができるようにしたいと思います。

私はJSFiddle for this questionを設定しました。

+1

あなたはこれが間違っていると思います。キーのショートカットではなく、検索ダイアログを無効にする必要があります。 –

答えて

6

Andrei Andrushkevich's answerは現在、より優れた単純なソリューションです。


あなたはeditor.commands.addCommandを使用してショートカットに関連付けられたコマンドを再定義して、ちょうど空の関数を供給することができます。このカスタム定義は組み込みの定義よりも優先されます。この場合:

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

ここではupdated JSFiddleです。明確な文書は見つかりませんでしたが、here's the editor.commands definitionhere's where .addCommands() isです。 (注:この回答が書き込まれてからコードが変更されている場合があります)

jcubicさんのコメントそれは偽のハンドラを代わりに使用する「removeCommand」「addCommand」を使用することをお勧めします

+0

これです!どうもありがとうございました!私自身はこれで何も起こっていないことを自分自身にパースしています。 –

+0

オブジェクトだけを受け入れる 'addCommand'関数もあります。 – jcubic

13

あたりとして編集

editor.commands.removeCommand('find');