Flex TextArea单击按钮时保持焦点/选择

时间:2009-05-29 06:09:37

标签: flex actionscript-3

我想知道即使单击外部按钮,我也会如何在TextArea上保持焦点/选择。

就像RichTextEditor一样。

4 个答案:

答案 0 :(得分:0)

在click事件的事件处理程序中,您需要stopImmediatePropagation()和preventDefault(),然后使用选择/焦点开展业务。

答案 1 :(得分:0)

似乎RichTextEditor正在通过setTextStyles()中的以下行完成对焦点的维护:

callLater(textArea.setFocus)

我认为与RTE控件的任何用户交互都会引导此方法,因此在控件事件完成后返回焦点。

答案 2 :(得分:0)

我在简单的文本框中遇到了同样的问题。我有一个拉出突出显示值的按钮,ajax将其发送到服务器。但是当从按钮上取下焦点时,高亮值window.getSelection().toString()为空白。

我只需将焦点设置回文本区域即可解决此问题。我知道的廉价解决方案,但它的工作我使用jQuery但可能很难想出一个vanilla javascript版本。

$holder.on('click', '.name-add_option input', function(e)
{
  // Make sure the button doesn't do something silly like submit the form.
  e.preventDefault();

  // Set the focus to the text area I expect the highlighted text to be.
  $holder.find('.name-field textarea').focus();

  // Copy highlighted text.
  highlight = window.getSelection().toString();

  // Do stuff with highlighted data.
});

$holder是一个div的jquery句柄,在我的上下文中被设置为模态窗口。

答案 3 :(得分:-2)

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
    <mx:TextArea id="textArea" focusOut="{textArea.setFocus()}" />
    <mx:Button id="test" label="Test" />
</mx:Application>