Flex / AIR:自动吸收未分配/禁用的密钥快捷方式
-
03-07-2019 - |
题
我有一个带有<mx:HTML>
组件的AIR应用程序,该组件呈现包含HTML/Javascript
基于WYSIWYG/rich-text editor
的页面。各种键盘快捷键被指定用于格式化和你有什么,但如果我键入一个未分配的快捷方式
(例如 cmd 或[ ctrl 在Windows上] + M ),
输入的字符就像没有按下修饰键一样。如果已分配快捷方式但其菜单项已禁用,则甚至是这样。
检测到修改器被按下的最佳方法是什么,但是没有分配快捷方式,应该忽略该快捷方式而不是在没有修改键的情况下传递给HTML视图?
解决方案
没关系,我明白了。显然,即使您阻止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();
}
});
不隶属于 StackOverflow