如何在mx:DateField中选择文本属性

时间:2015-03-04 21:23:37

标签: actionscript-3 flex mxml

我想手动选择Datefield的“textInput”框内的文本。 我怎样才能做到这一点?由于只有TextInput组件具有“selectAll()”方法,该方法选择插入框内的整个字符串。

我到处寻找,从未找到过。

我试过这个

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。

dateField.selectedDate = date;

-------------修改

有效。我所要做的就是找到放置代码的正确方法。在createFmplete之前使用selectedDate和DateField的触发器时,它实际上并不设置text_input。你必须等待它完全完成它的触发事件才能使用text_input。所以,我在设置selectedDate后使用了value_commit触发器来选择文本。这是:

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仅在第一次工作的技巧,这就是我想要的。我在完全创建之前设置了isSelected,并在其他mxml上完成了触发器。

1 个答案:

答案 0 :(得分:0)

你可以使用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();

希望可以提供帮助。