UIAlertView непреднамеренно отображается после каждой записи номера - PullRequest
0 голосов
/ 04 февраля 2010

Вот проблема с моими текстовыми полями.

-(void)textFieldTextDidChange:(NSNotification *)notif
{
    event.eventName = eventTextField.text;
    event.eventPlace = eventPlaceTextField.text;
    event.eventWinery = wineryTitleLabel.text;
    int vintageVal = [vintageTextField.text intValue];
    if([vintageTextField.text length]>0 && [vintageTextField.text length] == 4)
    {
        event.eventVintage = vintageVal;
    }
    else 
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"!!! MESSAGE !!!"
                 message:@" Enter the Valid year in Format YYYY"
                 delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show]; 
        [alert release];
        return;
    }
}

Если пользователь вводит год с четырьмя цифрами, то только он должен быть сохранен в event.eventVitage Но при вводе данных я получаю предупреждение о просмотре каждого номера.

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 04 февраля 2010
    if([vintageTextField.text length]>0 && [vintageTextField.text length] == 4)
{
    event.eventVintage = vintageVal;
}
else 
{....

Это говорит: если ваш textString равен 4 (больше 0 здесь избыточно ..) это означает, что когда он равен 1-2-3, он будет запускать код else.

В подобных ситуациях я часто либо выделяю текст серым цветом до тех пор, пока пользователь не введет достаточно цифр, либо не отключаю кнопку «Сохранить». Если у пользователя нет возможности указать, что он закончил печатать, это трудно предвидеть.

0 голосов
/ 04 февраля 2010

Ваша проблема в заявлении if.

if([vintageTextField.text length]>0 && [vintageTextField.text length] == 4)

В части && вы проверяете, равна ли длина 4. Если длина не равна 4, то вызывается else. Вам нужно проверить, если длина меньше или равна 4 <=, и поэтому предупреждение будет отображаться только тогда, когда длина больше 4 ------------------- -------------------------------------------------- ----------------!

if([vintageTextField.text length]>0 && [vintageTextField.text length] <= </strong>4)

Надеюсь, что это поможет, и вы получите удовольствие от кодирования

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