Flex RichTextEditor-放弃Ctrl + Y

问题描述 投票:1回答:1

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

由于没有撤消/重做管理,因此我试图扩展组件的功能。

我有一个函数,每次按下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中。

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

任何想法?

apache-flex air keydown rich-text-editor undo-redo
1个回答
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事件。

© www.soinside.com 2019 - 2024. All rights reserved.