Flex RichTextEditor - 放弃Ctrl + Y.

时间:2012-09-20 08:59:15

标签: flex air keydown rich-text-editor undo-redo

我在我的AIR桌面应用程序中使用RichTextEditor,使用flex 3.6构建。

由于没有撤消/重做管理,我正在尝试扩展组件功能。

每次按下CTRL + Y时,我都会遇到问题。

这是我按下按键时的实际操作。

<mx:RichTextEditor 
    id="myRTE"
    keyDown="onKeyDown(event);"
/>

....

public function onKeyDown(event:KeyboardEvent):void
{
    if (event.ctrlKey && event.charCode == 122)
    {
        // ctrl + z pressed!
        undo();
    }

    if (event.ctrlKey && event.charCode == 121)
    {
        // ctrl + y pressed!
        redo();
    }
}

我的问题是CTRL + Y输出在我的RichTextEditor中也是一个奇怪的字符,但我想丢弃它。

我试图把event.stopImmediatePropagation();就在redo()之后;但无论如何,奇怪的字符会附加到我的RichTextEditor。

我真的不知道如何摆脱它。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用此代码:

protected function application1_creationCompleteHandler(event:FlexEvent):void {
    myRTE.textArea.addEventListener(TextEvent.TEXT_INPUT, textInput);
}

private function textInput(event:TextEvent):void {
    // CTRL+V pressed
    if (event.text.length > 1)
        event.preventDefault();
}

RichTextEditor封装并使用TextArea。您可以为TextEvent.TEXT_INPUT添加事件以防止CTRL + V事件。