Flex / AIR: assorbe automaticamente le scorciatoie da tastiera non assegnate / disabilitate
-
03-07-2019 - |
Domanda
Ho un'app AIR con un componente <mx:HTML>
, che esegue il rendering di una pagina che include un HTML/Javascript
basato WYSIWYG/rich-text editor
. Varie scorciatoie da tastiera sono assegnate per la formattazione e cosa hai, ma se scrivo una scorciatoia che non è assegnata
( es. cmd o [ ctrl su Windows] + M ), il carattere viene inserito come se non fosse stato premuto alcun tasto modificatore. Questo è vero anche se il collegamento è assegnato ma la sua voce di menu è disabilitata.
Qual è il modo migliore per rilevare che viene premuto un modificatore, ma il collegamento non è assegnato e dovrebbe essere ignorato piuttosto che passare alla vista HTML senza la chiave del modificatore?
Soluzione
Non importa, l'ho capito. Apparentemente il sistema di menu funziona anche se si impedisce l'azione predefinita su KeyboardEvent:
public var OperatingSystem:String = !!NativeApplication.supportsDockIcon ?
'mac' :
!!NativeApplication.supportsSystemTrayIcon ?
'win' :
'other';
stage.addEventListener('keyDown', function(e:KeyboardEvent):void {
if(e[(OperatingSystem == 'mac' ? 'commandKey' : 'ctrlKey')]) {
e.preventDefault();
}
});