2015-01-29 3 views
0

Я просто создаю приложение AppJs с помощью Node.js и Angular.js, но мне не удается заставить сочетания клавиш работать.Ярлыки быстрого доступа AppJs (копирование, вставка, буфера обмена, выход, выбор всех ...)

У меня есть Menubar работу, но «&» трюк не работает на моем Mac:

var menubar = appjs.createMenu([{ 
    label:'&File', 
    submenu:[{ 
     label:'&Quit', 
     action: function(){ 
      window.close(); 
     } 
     }] 
    }, 
    { 
     label:'&Window', 
     submenu:[ 
     { 
      label:'&Fullscreen', 
      action:function(item) { 
      window.frame.fullscreen(); 
      console.log(item.label+" called."); 
      } 
     }, 
     { 
      label:'&Minimize', 
      action:function(){ 
      window.frame.minimize(); 
      } 
     }, 
     { 
      label:'Maximize', 
      action:function(){ 
      window.frame.maximize(); 
      } 
     }, 
     { 
      label:''//separator 
     }, 
     { 
      label:'Restore', 
      action:function(){ 
      window.frame.restore(); 
      } 
     } 
     ] 
    } 
    ]); 

Другое дело, что я пытаюсь сделать, это позволить копировать/вставить и выбрать все с помощью CMD + C, CMD + V и CMD + A ... но я не могу найти способ сделать это ...

У меня этот код в моем «готовом» событии (на стороне сервера), ведьма захватывает события клавиатуры, но Я не знаю, что с ними делать :(

window.on('ready', function(){ 
    window.require = require; 
    window.process = process; 
    window.module = module; 
    window.addEventListener('keydown', function(e){ 
    // SELECT ALL (CMD+A) 
    if (e.keyCode == 65) { 
     console.log('SELECT ALL'); 
    } 
    // COPY (CMD+C) 
    if (e.keyCode == 67) { 
     console.log('COPY'); 
    } 
    // PASTE (CMD+V) 
    if (e.keyCode == 86) { 
     console.log('PASTE'); 
    } 
    if (e.keyIdentifier === 'F12' || e.keyCode === 74 && e.metaKey && e.altKey) { 
     window.frame.openDevTools(); 
    } 
    }); 
}); 

Пожалуйста, если у вас есть свет в этом вопросе, вы будете очень благодарны :)

ответ

0

Я нашел способ сделать работу с клавишами с помощью «execCommand».

В «готово» событии, я просто добавил команды, следующий:

window.on('ready', function(){ 
    window.require = require; 
    window.process = process; 
    window.module = module; 
    window.addEventListener('keydown', function(e){ 
    // console.log(e.keyCode); 
    // SELECT ALL (CMD+A) 
    if (e.keyCode == 65) { 
     window.document.execCommand('selectAll'); 
    } 
    // COPY (CMD+C) 
    if (e.keyCode == 67) { 
     window.document.execCommand('copy'); 
    } 
    // EXIT (CMD+M) 
    if (e.keyCode == 77) { 
     window.frame.minimize(); 
    } 
    // EXIT (CMD+Q or CMD+W) 
    if (e.keyCode == 81 || e.keyCode == 87) { 
     window.close(); 
    } 
    // PASTE (CMD+V) 
    if (e.keyCode == 86) { 
     window.document.execCommand('paste'); 
    } 
    // CUT (CMD+X) 
    if (e.keyCode == 88) { 
     window.document.execCommand('cut'); 
    } 
    if (e.keyIdentifier === 'F12' || e.keyCode === 74 && e.metaKey && e.altKey) { 
     window.frame.openDevTools(); 
    } 
    }); 
}); 

Надеется, что это поможет кому-то!