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