【发布时间】:2010-12-01 00:43:28
【问题描述】:
我正在尝试在 Flex 中创建一个简单的“智能”文本框组件,并且我想要一个可以在组件外部使用的函数来强制自己选择其中的所有文本。
在我的SmartTextbox.mxml:
public function selectAll():void
{
this.setSelection(0, this.length);
}
当文本框获得焦点时,我也使用此功能,如下所示:
private function onTextInput_focusIn(event:Event):void
{
selectAll();
}
后一个,在 focusIn 事件上,正在工作。 但是,如果我尝试从外部调用该函数,例如:
在另一个组件中,texInputQuickSearch 是 SmartTextBox 组件。
if(searchModule.currentState == SearchModule.STATE_SEARCH)
{
doSearch();
searchModule.textInputQuickSearch.selectAll();
}
它不会重新选择文本。
为什么会这样?
【问题讨论】:
-
使用调试器,或者通过放置日志,您是否看到 selectAll() 是否在 texInputQuickSearch 上下文中执行?
-
doSearch() 中是否抛出异常?
-
您是否有机会将可选属性设置为 false?
-
使用调试器我可以看到 selectAll 已执行,但在执行后直接 selectionBeginIndex 和 selectionEndIndex 仍然与之前相同 = 没有选择。当我在 focusIn 事件上执行 selectAll 时,它会起作用
标签: apache-flex actionscript-3 components