iOS 5: местозаполнитель ввода не очищается по фокусу, только по вводу, ошибке или функции? - PullRequest
1 голос
/ 02 февраля 2012

Играя с моим веб-приложением в симуляторе iOS 5, я заметил, что iOS 5 не очищает заполнители сразу, только после первого ввода. Во всех других версиях iOS, а также во всех браузерах настольных компьютеров заполнитель немедленно очищается, когда пользователь фокусируется на вводе. У меня нет доступа к устройству iOS 5, но я очень сомневаюсь, что это ошибка симулятора.

Это ошибка или предназначена? Как ни странно, я нашел только одну ссылку на это поведение в сети, прямо здесь, на SO: очистка входного заполнителя в iOS5

Есть ли решение этой проблемы? Это очень расстраивает пользователя, когда заполнитель не очищается сразу.

Ответы [ 2 ]

2 голосов
/ 02 февраля 2012

Я думаю, что вы ошибаетесь - текстовые поля iOS всегда ведут себя так.

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

Что может вас смущать, так это то, что поля iOS имеют отдельное необязательное поведение, при котором текст очищается при выборе поля, но учтите, что это фактический текст , который очищается, а не заполнитель текст.

Текст-заполнитель - это светло-серый текст, и он всегда появляется до тех пор, пока пользователь что-то не введет.

Текст содержимого (обычно черный) иногда очищается, когда поле сфокусировано, а иногда нет, в зависимости от того, как был настроен UITextField.

Решение jQuery в вопросе SO, с которым вы связаны, должно позволить вам воспроизвести любой вариант этой функциональности, который вы пожелаете, но лично я бы посоветовал придерживаться соглашения iOS о том, чтобы не очищать вспомогательный текст до тех пор, пока пользователь что-то введет. *

0 голосов
/ 02 февраля 2012

Это не ошибка, это особенность.Вы можете использовать методы делегата для очистки заполнителя.(UITextFieldDelegate http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextFieldDelegate_Protocol/UITextFieldDelegate/UITextFieldDelegate.html)

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
  [textField setPlaceholder:@""];
}

и вы должны контролировать его пустоту после завершения редактирования.

- (void)textFieldDidEndEditing:(UITextField *)textField
{
  if ([textField.text isEqualToString:@""])
    [textField setPlaceholder:@"Placeholder Text"];

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...