Я пытаюсь добавить функциональные возможности вкладки в текстовый редактор с использованием события keyDown. Чтобы быть ясным, в ключе табуляции мне нужен элемент управления, чтобы он оставался в том же текстовом поле с пробелами «\ t» и не переходил к следующему объекту. Следующий код, который я пробовал, отлично работает с textArea, но не с RichTextEditor. Я что-то упускаю?Добавление функции вкладки в текстовом редакторе (Flex 3)
<mx:RichTextEditor width="90%"
height="274"
id="richTextArea"
htmlText="{chapterContent}" keyDown="onTabPress(event);"/>
Ключ клавиатуры клавиатуры обрабатывается на уровне скрипта, как показано на рисунке.
private function onTabPress(eventkey:KeyboardEvent):void
{
switch(eventkey.keyCode)
{
case Keyboard.TAB:
var indexBegin:int = eventkey.currentTarget.selectionBeginIndex;
var range:TextRange = new TextRange(eventkey.currentTarget as UIComponent,false,indexBegin,indexBegin);
range.text = "\t";
var indexNext:int = eventkey.currentTarget.selectionBeginIndex+range.text.length;
eventkey.currentTarget.setSelection(indexNext, indexNext);
focusManager.moveFocus(FocusRequestDirection.BACKWARD);
break;
}
}
Спасибо за помощь.
Я знаю, что RTE состоит из управления и текстовой области. Как я могу убедиться, что слушатель keyDown присоединяется к textArea. Извиняюсь, если я считаю себя дилетантским. – shark1608
Пробовал ли вы 'eventKey.stopImmediatePropagation()'? – duTr