Flex / AIR: assorbe automaticamente le scorciatoie da tastiera non assegnate / disabilitate

StackOverflow https://stackoverflow.com/questions/202151

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?

È stato utile?

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();
    }
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top