我有一个带有<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();
    }
});
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top