使Flex TextInput在空String上不显示提示

时间:2012-02-17 09:54:53

标签: actionscript-3 flash flex flex4.5

我在Flex 4.5中使用s:TextInput。如果基础文本值为null或空String,则显示它的提示文本。有人知道我是否可以在空字符串上显示提示或甚至显示不同的提示? 我已经通过扩展TextInput类并覆盖了一些方法找到了一种方法,但我仍然希望这里有人知道更简单的方法; - )

1 个答案:

答案 0 :(得分:1)

好的,基于评论,这里是: 您将当前提示值存储在私有变量中,如下所示:

private var _inputPrompt:String = "";

然后你创建一个getter,所以可以从这个类的外部访问该值:

public function get inputPrompt():String
{
    return _inputPrompt;
}

现在,您可以将 inputPrompt 绑定到您需要的任何位置,但问题是,一旦私有值更改,将无法调用getter。您可以非常轻松地解决此问题:创建更新方法,例如:

public function updateInputPrompt(value:String):void
{
    _inputPrompt = value;
}

好的,到目前为止还没什么特别的。我猜这是你现在的关键所在。为了强迫"要被召回的getter,你必须将它绑定到一个事件,如下所示:

[Bindable(event="inputPromptUpdated")]
public function get inputPrompt():String
{
    return _inputPrompt;
}

最后,您可以在值更新时(即在 updateInputPrompt 方法中)调度此事件:

public function updateInputPrompt(value:String):void
{
    _inputPrompt = value;
    dispatchEvent("inputPromptUpdated"); // For binding
}

这样,每次发送该事件时都会调用getter。

希望这会有所帮助。祝大家愉快,周末愉快!