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 に答える