Сделать так, чтобы Flex TextInput не показывал приглашение на пустой строке - PullRequest
0 голосов
/ 17 февраля 2012

Я использую как: TextInput в Flex 4.5.Он показывает текст подсказки, если базовое текстовое значение равно NULL или пустой строке.Кто-нибудь знает, могу ли я заставить либо не показывать подсказку на пустой строке или даже показывать другую подсказку?Я уже нашел способ, расширяя класс TextInput и переопределяя некоторые из методов, но я все еще надеюсь, что кто-нибудь здесь знает более простой способ; -)

1 Ответ

1 голос
/ 17 февраля 2012

Хорошо, поэтому, основываясь на комментариях, вот оно: Вы сохраняете текущее значение приглашения в закрытой переменной, например так:

private var _inputPrompt:String = "";

Затем вы создаете метод получения, поэтому значение доступно извне этого класса:

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

Теперь вы можете связать inputPrompt везде, где вам это нужно, однако проблема в том, что получатель не будет вызван после изменения частного значения.Вы можете исправить это очень легко: создайте метод обновления, например, так:

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

Хорошо, пока ничего сложного.Я предполагаю, что это тот момент, когда вы находитесь прямо сейчас.Чтобы «заставить» геттер быть вызванным, вы должны привязать его к событию, например, так:

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

Наконец, вы можете просто отправить это событие, когда значение обновляется (т.е. в updateInputPrompt метод):

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

Таким образом, получатель будет вызываться каждый раз, когда вы отправляете это событие.

Надеюсь, это поможет.Удачного дня и хороших выходных!

...