Сбой сравнения UITextFeld - PullRequest
       2

Сбой сравнения UITextFeld

0 голосов
/ 11 января 2012

У меня есть UITextField, и я создаю его так:

firstnameField1 = [[UITextField alloc] initWithFrame:CGRectMake(85+320*4, 80, 150, 30)];
    [firstnameField1 setBorderStyle:UITextBorderStyleRoundedRect];
    [firstnameField1 setPlaceholder:@"Firstname"];
    [firstnameField1 setDelegate:self];
    [firstnameField1 setReturnKeyType:UIReturnKeyNext];
    [scrollViewController addSubview:firstnameField1];

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

Я проверяю следующее:

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
    //Check if the user has typed anything
    if (textField.text == @"") {
        //If not, show 'required' labels
        [firstNameRequiredLbl1 setAlpha:1];
        [surnameRequiredLbl1 setAlpha:1];
        [firstNameRequiredLbl2 setAlpha:1];
        [surnameRequiredLbl2 setAlpha:1];
        return YES;
    }

    //Do all my other stuff, cut out for ease of reading, 100% doesn't affect this anyway

    return YES;
}

Я установил точку останова в этом последнем методе, и он сразу же переходит через оператор if, набираю ли я это текстовое поле или нет.

Есть идеи? Спасибо.

Ответы [ 2 ]

2 голосов
/ 11 января 2012

Вы хотите изменить textField.text == @""

на: textField.text.length == 0 или textField.text isEqualToString:@""

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

1 голос
/ 11 января 2012

Вы не можете сравнивать NSString текстовые строки таким образом. Используйте это вместо:

if ([textField.text isEqualToString: @""])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...