Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 按下enter键时,用作项目编辑器的TextArea会出现错误行为_Apache Flex - Fatal编程技术网

Apache flex 按下enter键时,用作项目编辑器的TextArea会出现错误行为

Apache flex 按下enter键时,用作项目编辑器的TextArea会出现错误行为,apache-flex,Apache Flex,我在itemEditor组件中有一个TextArea,问题是当在TextArea中键入时,如果按enter键,itemEditor会自动重置,而不是按预期将插入符号移动到下一行: 有人能告诉我如何避开这种奇怪的行为,并使回车键按预期的方式工作吗 谢谢 Chris看起来[enter]的按键是由列表默认功能而不是项目渲染器处理的。不确定要修复的确切代码是什么,但我认为您需要扩展列表控件,当用户按[enter]键时,该控件将禁用该函数。诀窍是侦听ITEM\u EDIT\u END事件,如果原因

我在itemEditor组件中有一个TextArea,问题是当在TextArea中键入时,如果按enter键,itemEditor会自动重置,而不是按预期将插入符号移动到下一行:


有人能告诉我如何避开这种奇怪的行为,并使回车键按预期的方式工作吗

谢谢


Chris

看起来[enter]的按键是由列表默认功能而不是项目渲染器处理的。不确定要修复的确切代码是什么,但我认为您需要扩展列表控件,当用户按[enter]

键时,该控件将禁用该函数。诀窍是侦听ITEM\u EDIT\u END事件,如果原因是NEW\u ROW,则阻止默认列表行为。见下例:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" applicationComplete="onComplete();">
    <mx:Script><![CDATA[
        import mx.events.ListEvent;
        import mx.events.ListEventReason;
        import mx.controls.TextArea;

        private function onComplete():void
        {
            list.addEventListener(ListEvent.ITEM_EDIT_END, onEndEdit);
        }
        private function onEndEdit(e:ListEvent):void
        {
            if (e.reason == ListEventReason.NEW_ROW)
                e.preventDefault();
            else
                list.editedItemRenderer.data.title = TextArea(e.currentTarget.itemEditorInstance).text;
        }
    ]]></mx:Script>
    <mx:List width="100%" editable="true" id="list">

        <mx:dataProvider>
            <mx:Object title="Stairway to Heaven" />
        </mx:dataProvider>

        <mx:itemRenderer>
            <mx:Component>
                <mx:Text height="100" text="{data.title}"/>
            </mx:Component>                       
        </mx:itemRenderer>

        <mx:itemEditor>
            <mx:Component>
                <mx:TextArea height="100" text="{data.title}"/>
            </mx:Component>                       
        </mx:itemEditor>

    </mx:List>

</mx:Application>

您认为可以使用List.as(第544行Flex3.5)的“editorUsesEnterKey”


指示项目编辑器是否使用Enter键的标志

刚刚在StackOverflow大比分调整中失去了800个代表点。非常享受,我现在开始了我的0赛跑。因此,我们将从这个问题的悬赏开始
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" applicationComplete="onComplete();">
    <mx:Script><![CDATA[
        import mx.events.ListEvent;
        import mx.events.ListEventReason;
        import mx.controls.TextArea;

        private function onComplete():void
        {
            list.addEventListener(ListEvent.ITEM_EDIT_END, onEndEdit);
        }
        private function onEndEdit(e:ListEvent):void
        {
            if (e.reason == ListEventReason.NEW_ROW)
                e.preventDefault();
            else
                list.editedItemRenderer.data.title = TextArea(e.currentTarget.itemEditorInstance).text;
        }
    ]]></mx:Script>
    <mx:List width="100%" editable="true" id="list">

        <mx:dataProvider>
            <mx:Object title="Stairway to Heaven" />
        </mx:dataProvider>

        <mx:itemRenderer>
            <mx:Component>
                <mx:Text height="100" text="{data.title}"/>
            </mx:Component>                       
        </mx:itemRenderer>

        <mx:itemEditor>
            <mx:Component>
                <mx:TextArea height="100" text="{data.title}"/>
            </mx:Component>                       
        </mx:itemEditor>

    </mx:List>

</mx:Application>