2012-12-03 24 views
5

Tôi muốn vô hiệu hóa hộp thoại tìm các ACE biên tập viên, được gọi bằng cách nhấn lệnh + F tổ hợp phím khi soạn thảo có tiêu điểm.Làm thế nào để vô hiệu hóa Find ACE biên tập viên Dialog

Tôi đã thử những điều sau đây (trong số những thứ khác):

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

Điều này ngăn cản một từ có thể gõ bình thường, nhưng không chỉ dừng lại lệnh + Một khóa không bị xử lý.

Làm cách nào để ngăn chặn Lệnh + F kết hợp để được xử lý?

Lý tưởng nhất là tôi muốn để có thể ngăn chặn chỉ lệnh + F kết hợp, như tôi muốn tiếp tục sử dụng lệnh khác tổ hợp phím.

Tôi đã thiết lập một số JSFiddle for this question.

+1

Tôi nghĩ rằng bạn đang tiếp cận điều này sai. Bạn nên cố gắng tắt hộp thoại tìm kiếm, chứ không phải phím tắt. –

Trả lời

6

Andrei Andrushkevich's answer hiện là giải pháp tốt hơn và đơn giản hơn.


Bạn có thể định nghĩa lại lệnh kết hợp với các phím tắt bằng cách sử dụng editor.commands.addCommand, và sau đó chỉ cần cung cấp một chức năng có sản phẩm nào. Định nghĩa tùy chỉnh này sẽ được ưu tiên hơn so với định nghĩa được cài sẵn. Trong trường hợp này:

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

Đây là updated JSFiddle. Tôi không tìm thấy tài liệu rõ ràng, nhưng here's the editor.commands definitionhere's where .addCommands() is. (Lưu ý:. Mã có thể đã thay đổi kể từ khi câu trả lời này đã được viết)

Sửa theo bình luận jcubic của

+0

Đây là nó! Cảm ơn nhiều! Facepalming bản thân mình cho không có gì đến với điều này bản thân mình. –

+0

Ngoài ra còn có chức năng 'addCommand' chỉ chấp nhận đối tượng. – jcubic

13

Nó tốt hơn để sử dụng 'removeCommand' thay vì sử dụng 'addCommand' với handler giả

editor.commands.removeCommand('find'); 
Các vấn đề liên quan