0

我有一个本机菜单项,其中包含一个简单字母(如“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>

这很好用,但是当我尝试在应用程序的任何文本字段或 textInput 中键入文本时,我无法键入 f。

如何阻止菜单窃取我的键盘输入?

4

1 回答 1

0

菜单加速器的更好模式可能是使用控制键,例如您的示例中的 CTRL+F。

因此,您的菜单项将包括controlKey="true"

<?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>
于 2012-05-22T02:52:39.893 回答