Отклонение клавиатуры в UIScrollView - PullRequest
59 голосов
/ 28 февраля 2011

Хорошо, у меня есть пара UITextFields и UITextViews внутри UIScrollView, и я бы хотел, чтобы клавиатура исчезала при каждом касании или прокрутке scrollview (кроме случаев, когда вы касаетесь внутри текстовое поле / вид, конечно).

Моя текущая попытка сделать это - заменить UIScrollView подклассом и настроить его на вызов функции removeKeyboard (определенной в контроллере основного представления) внутри метода touchesBegan . Однако, это удаляет клавиатуру только для обычного прикосновения, а не тогда, когда вид просто прокручивается. Итак, каков наилучший способ удалить клавиатуру внутри UIScrollView?

Заранее спасибо за помощь.

Ответы [ 12 ]

0 голосов
/ 16 октября 2017
scrollView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
0 голосов
/ 11 сентября 2012

Попробуйте этот метод делегата с прокруткой -

связать делегата в IB, чтобы прокрутить представление, а затем скопировать этот код (изменить в соответствии с вашими потребностями).

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{         
//sample code    
    [challengeABallotComponent.voterNameTextField resignFirstResponder];
    [challengeABallotComponent.ballotNumberTextField resignFirstResponder];
    [locationInformation.pollingLocation resignFirstResponder];
}

Это должно работать.Вы также можете попробовать другие методы делегата, такие как

   -(void)scrollViewDidScroll: (UIScrollView *)scrollView 
{
//do your stuff
}
...