2016-10-26 5 views
0

Я работаю над iPhone приложение с автозапуском, которое имеет верхнее и нижнее поле в нижней части представления. Пользователь забирает поле, и мне нужно прокручивать представление вверх над клавиатурой. Вот мой код keyboardDidShow.Автоматическая прокрутка клавиатуры?

- (void) keyboardDidShow:(NSNotification *)notification 
{ 
    CGSize kbSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 

    UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize.height, 0.0); 
    [[self scrollView] setContentInset:contentInsets]; 

    [self setIsKeyboardVisible:YES]; 
} 

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

Вот как я работать с ключом Return:

- (BOOL) textFieldShouldReturn:(UITextField*)textField 
{ 
    switch ([textField tag]) 
    { 
     case vtNameField: 
      [[self txtEmail] becomeFirstResponder]; 

      break; 

     case vtEmailField: 
      [[self txtEmail] resignFirstResponder]; 

      break; 

     default: 
      break; 
    } 

    return NO; 
} 

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

ответ

0

Используйте эту библиотеку, она очень проста и не нуждается в коде. Просто введите имя класса в виде «TPKeyboardAvoidingScrollView», и представление автоматически прокрутит, чтобы сделать TextField над клавиатурой.

https://github.com/michaeltyson/TPKeyboardAvoiding

Смежные вопросы