Сравнить текст заполнителя в текстовом поле

Я установил текст заполнителя (например, до 18 лет) текстового поля (homeTeam) в раскадровке. Теперь я хочу проверить состояние, как показано ниже.

- (BOOL)textFieldShouldBeginEditing:(UITextField *) textField
{
    if ([_homeTeam.text isEqualToString:@"e.g. Under 18s"]) { // e.g. Under18s
        [_homeTeam setPlaceholder:@""];
    }
}

Но условие никогда не становится правдой. Что мне здесь не хватает? _homeTeam.text пуст, когда я использовал NSlog для отслеживания. Почему это так?

Пожалуйста, предложите.

-9
источник поделиться
2 ответа

измените условие if, оно должно быть _homeTeam.placeholder не _homeTeam.text потому что вы устанавливаете текст заполнителя, а не текст UITextField.

- (BOOL)textFieldShouldBeginEditing:(UITextField *) textField
{
    if ([_homeTeam.placeholder isEqualToString:@"e.g. Under 18s"]) { // e.g. Under18s
        [_homeTeam setPlaceholder:@""];
    }
}
+2
источник

Вы действительно хотите сравнить с свойством placeholder, а не с text (который вводится пользователем).

Кроме того, я бы вместо этого ссылался на textField (вместо _homeTeam напрямую, поскольку вы могли бы добавить другие текстовые поля позже), как таковой:

- (BOOL)textFieldShouldBeginEditing:(UITextField *) textField
{
    if ([textField.placeholder isEqualToString:@"e.g. Under 18s"]) { // e.g. Under18s
        [textField setPlaceholder:@""];
    }
}
+1
источник

Посмотрите другие вопросы по меткам или Задайте вопрос