我在我的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。
我真的不知道如何摆脱它。
有什么想法吗?
答案 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事件。