Отображение текста-заполнителя в UITextField, созданном с помощью источника данных

Предыстория: у меня есть UITableView с тремя строками с пользовательскими UITextField, которые заполняются из TableDataSource. Текст по умолчанию в этих текстовых полях также заполняется из источника данных (значения по умолчанию для полей базы данных).

Я могу автоматически очищать UITextField, когда пользователь выбирает/щелкает определенный UITextField.

Проблема. Если пользователь выбирает определенный UITextField, а затем переходит к другому UITextField, не редактируя текст, я бы хотел, чтобы исходный текст по умолчанию снова появился. Я попытался установить для UITextField значение nil в методе делегата 'didEndEditing', но это не сработало.

Может ли кто-нибудь посоветовать, если он знает, как это сделать?


person ChicagoSky    schedule 02.01.2013    source источник


Ответы (2)


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

Вы можете сделать это, используя метод делегата textFieldDidEndEditing.

 - (void)textFieldDidEndEditing:(UITextField *)textField
{
   if(textField.text.lenght == 0)
   {
      textField.text = yourPreviousText;
   }
}

А в textFieldShouldBeginEditing

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
   yourPreviousText = textField.text;
}

yourPreviousText — это объект NSString, объявленный в области видимости класса.

person Midhun MP    schedule 02.01.2013

Решение. Я задавал замещающий текст с помощью свойства UITextfield.text. Я бы предпочел использовать свойство UITextField.placeholder. Установка этого свойства автоматически гарантирует, что текст-заполнитель исчезнет и появится снова в зависимости от редактирования, выполненного пользователем. Отнимает много работы с точки зрения попыток выяснить, что пользователь ввел/не ввел.

person ChicagoSky    schedule 02.01.2013