如何 select 在 mx:DateField 中发送文本 属性

How to select text property in mx:DateField

我想手动 select 日期字段 "textInput" 框中的文本。 我怎样才能做到这一点?由于只有 TextInput 组件具有 "selectAll()" 方法,该方法 select 插入框内的整个字符串。

我到处找都找不到。

我试过了

var text_input:mx.controls.TextInput = date_field.mx_internal::getTextInput();                  
text_input.setSelection(0, text_input.length);
text_input.setFocus();

但是没有用,"text_input.text"是空的。所以我猜它是另一个在 Datefield 的框中显示字符串的组件。我用 selectedDate 属性.

填充日期字段
dateField.selectedDate = date;

----------------编辑

成功了。我所要做的就是找到放置该代码的正确方法。当您在 DateField 的 creationComplete 和触发器之前使用 selectedDate 时,它​​实际上并没有设置 text_input。您必须等待它完全完成它的触发事件才能使用 text_input。因此,在设置 selectedDate 后,我使用 value_commit 触发器来 select 文本。这是:

protected function cmpDateFault_valueCommitHandler(event:FlexEvent):void
        {
            if(isSelect){

                var text_input:mx.controls.TextInput = cmpDateFault_valueCommitHandler.mx_internal::getTextInput();                  
                text_input.setSelection(0, text_input.length);
                text_input.setFocus();

                isSelect = false;
            }
        }

"isSelect" 是我用来使 value_commit 只在第一次工作的技巧,这正是我想要的。我在其他 mxml 上完成完全创建和触发器之前设置了 isSelected。

您可以像这样使用 mx.core.mx_internal 来做到这一点:

var text_input:mx.controls.TextInput = date_field.mx_internal::getTextInput();                  
    text_input.setSelection(0, text_input.length);
    text_input.setFocus();

希望能帮到你。