我想手动选择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上完成了触发器。
答案 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();
希望可以提供帮助。