我正在尝试处理TextField上的焦点事件,因此我可以在聚焦时选择所有文本(制表符或单击)。好像我在这里做错了吗?

txtTextField.addEventListener(FocusEvent.FOCUS_IN, handleFocusIn);
function handleFocusIn() {
 //select all text here
}

最佳答案

我需要做同样的事情,以便在文本字段获得焦点时选择其内容。

我试过了:

A)只需在FocusEvent之后选择即可。这似乎不起作用(我猜是在处理鼠标单击之前触发了FocusEvents,这反过来会撤消选择)。

B)在每次单击鼠标时选择。这可行,但是对于以后只选择一部分文本的用户来说,这很烦人,因为这种尝试将始终导致全部内容被选中。

以下变通办法似乎可以解决:

    myTextField.addEventListener(MouseEvent.CLICK, selectAllOnce);

    function selectAllOnce(e:MouseEvent) {
        e.target.removeEventListener(MouseEvent.CLICK, selectAllOnce);
        e.target.addEventListener(FocusEvent.FOCUS_OUT, addSelectListener);
        selectAll(e);
    }

    function addSelectListener(e:FocusEvent) {
        e.target.addEventListener(MouseEvent.CLICK, selectAllOnce);
        e.target.removeEventListener(FocusEvent.FOCUS_OUT, addSelectListener);
    }

    function selectAll(e:Event) {
        e.target.setSelection(0, e.target.getLineLength(0));
    }

希望能有所帮助。我个人认为,如果Adobe仅为此TextField对象添加一个选项,那将是最合逻辑的。

10-06 16:18