Клавиатура iPhone быстро нажимая кнопку «Далее» - PullRequest
0 голосов
/ 11 января 2012

В моем приложении возникают проблемы, если быстро нажать кнопку «Далее» (клавиша возврата). Есть ли способ, которым я могу помешать пользователю сделать это? Я не могу придумать решение самостоятельно.

Я нахожусь в UIScrollView со многими страницами, и на определенной странице у меня есть всплывающее окно с клавиатурой, чтобы пользователь мог ввести в UITextField. Нажатие на следующую кнопку побуждает представление прокрутки перейти к следующей странице. Однако, если пользователь слишком сильно нажимает на кнопку, это приводит к тому, что представление прокрутки начинает перемещаться.

Код ниже, когда клавиша возврата нажата, ключевая часть это вызывает [self setPage:6];

-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
    //Enter your first and last name
    if (textField == firstnameField1) 
    {
        //Put the text into a string to be saved
        firstName1 = firstnameField1.text;
        //Send user to next field (your surname)
        [surnameField1 becomeFirstResponder];
    }
    else if (textField == surnameField1)
    {
        //Put text into a string to be saved
        surname1 = surnameField1.text;
        //Move to the next stage, enter partners name
        if (pageController.currentPage == 4) {
            [self setPage:5];
        }
        else if (pageController.currentPage == 3)
        {
            [self setPage:5];
        }

        currentStage = stage6;
    }

    //Enter your partners first and last name
    if (textField == firstnameField2) 
    {
        //Put the text into a string to be saved
        firstName2 = firstnameField2.text;
        //Send user to next field (your partners surname)
        [surnameField2 becomeFirstResponder];
    }
    else if (textField == surnameField2)
    {
        //Put text into a string to be saved
        surname2 = surnameField2.text;
        //Move to the next stage, enter partners name
        if (pageController.currentPage == 5) {
            [self setPage:6];
        }
        else if (pageController.currentPage == 4)
        {
            [self setPage:6];
        }

        currentStage = stage7;
    }

    return YES;
}

Этот метод setPage ниже:

-(void)setPage:(int)destinationPage
{
    //Scroll to appropriate page in scroll view
    CGRect frame = scrollViewController.frame;
    frame.origin.x = frame.size.width * destinationPage;
    frame.origin.y = 0;
    [scrollViewController scrollRectToVisible:frame animated:YES];
}

Спасибо.

1 Ответ

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

Судя по вашему коду, вы перегружаете кнопку Return.Рассматривали ли вы вопрос об использовании панели инструментов с кнопками «Далее / Предыдущий» , чтобы пользователь мог легко вернуться к пропущенному полю, если они случайно перекрыли его?

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