Flex RichTextEditor-放弃Ctrl+Y

qjp7pelc  于 2022-09-21  发布在  Apache
关注(0)|答案(1)|浏览(106)

我在我的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中也是一个奇怪的字符,但我想丢弃它。

我试图在redo()之后放一个vent.stopImmediatePropagation();,但奇怪的char无论如何都会附加到我的RichTextEditor中。

我真的不知道怎么才能摆脱它。

有什么主意吗?

ar7v8xwq

ar7v8xwq1#

您可以使用以下代码:

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事件。

相关问题