Apache flex 如何阻止具有键盘等价物的FlexNativeMenu窃取我的击键?
我有一个本地菜单项,上面有一个简单字母“F”的快捷方式Apache flex 如何阻止具有键盘等价物的FlexNativeMenu窃取我的击键?,apache-flex,keystroke,Apache Flex,Keystroke,我有一个本地菜单项,上面有一个简单字母“F”的快捷方式 这非常有效,但是当我尝试在任何文本字段或文本输入中键入文本时 在应用程序的任何地方,我都无法键入f 如何阻止菜单窃取我的键盘输入?也许更好的菜单加速器模式是使用控制键,例如您的示例中的CTRL+F 因此,您的菜单项将包括controlKey=“true” 我已经在使用control键了,虽然我找到了更好的解决方案,但我更喜欢直接使用f而不是control+f,我看不出菜单项为什么应该停止键盘事件而不是让它冒泡。通过仅指定“f”,您明确
这非常有效,但是当我尝试在任何文本字段或文本输入中键入文本时
在应用程序的任何地方,我都无法键入f
如何阻止菜单窃取我的键盘输入?也许更好的菜单加速器模式是使用控制键,例如您的示例中的CTRL+F 因此,您的菜单项将包括
controlKey=“true”
我已经在使用control键了,虽然我找到了更好的解决方案,但我更喜欢直接使用f而不是control+f,我看不出菜单项为什么应该停止键盘事件而不是让它冒泡。通过仅指定“f”,您明确定义了一个强大的快速加速器,以方便您的设计。与文本输入操作相结合是不合逻辑的。然而,我知道你正在通过停止即时事件传播来寻求一种独特的可用性。不,只是更多地覆盖了标准可用性。
<s:menu>
<mx:FlexNativeMenu id="mainMenu"
dataProvider="{menuData}"
labelField="@label"
keyEquivalentField="@keyEquivalent"
showRoot="false" />
</s:menu>
<fx:Declarations>
<fx:XML format="e4x" id="menuData">
<root>
<menuitem label="Edit">
<menuitem label="Frame Selection" keyEquivalent="f"/>
</menuitem>
</root>
</fx:XML>
</fx:Declarations>
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<s:menu>
<mx:FlexNativeMenu id="mainMenu"
dataProvider="{menuData}"
labelField="@label"
keyEquivalentField="@keyEquivalent"
showRoot="false" />
</s:menu>
<fx:Declarations>
<fx:XML format="e4x"
id="menuData">
<root>
<menuitem label="Edit">
<menuitem label="Frame Selection"
keyEquivalent="f"
controlKey="true" />
</menuitem>
</root>
</fx:XML>
</fx:Declarations>
<s:TextInput />
</s:WindowedApplication>