我在Flex 4.5中使用s:TextInput。如果基础文本值为null或空String,则显示它的提示文本。有人知道我是否可以在空字符串上显示提示或甚至显示不同的提示? 我已经通过扩展TextInput类并覆盖了一些方法找到了一种方法,但我仍然希望这里有人知道更简单的方法; - )
答案 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。
希望这会有所帮助。祝大家愉快,周末愉快!