不可编辑的文本粘贴目标

时间:2011-09-22 08:54:27

标签: flex flex4

用户需要能够在我的Flex应用程序中将Excel电子表格的内容粘贴到网格中。

我使用TextAreachange事件处理程序实现了这一点,该处理程序解析用户粘贴的文本 - 通过换行符和标签将其拆分 - 并将其添加到ArrayCollection这是绑定到网格。

但是,用户无法在TextArea中手动输入文本。我该如何阻止他们这样做?

或者:创建我自己的实现IFocusManagerComponent的组件会更有意义吗?

1 个答案:

答案 0 :(得分:0)

[更新] 有点乱,请在使用前清理代码:

                  

<fx:Script>
    <![CDATA[

        protected function keyDownEvent(e:KeyboardEvent):void
        {
            e.preventDefault();
            switch(e.keyCode)
            {
                case Keyboard.V: 
                    if (e.ctrlKey)
                    {
                        ta.text += "Some dummy " + "\n" +
                            "text pasted in this text area";
                        ta.text += "\n[Keyboard Used to paste]";
                    }
                    break;
                default:
                    e.preventDefault();
            }
        }

        protected function onCreationComplete(event:Event):void
        {
            ta.addEventListener(KeyboardEvent.KEY_DOWN, keyDownEvent);
        }

    ]]>
</fx:Script>

<s:Label text="Press CTRL[V] to see the action"/>
<s:TextArea id="ta"/>