Клавиатура, ориентация и UITextView - PullRequest
2 голосов
/ 27 апреля 2011

У меня есть UITextview, который покрывает весь экран.Чтобы компенсировать клавиатуру, я добавил этот обработчик:

- (void)keyboardWasShown:(NSNotification*)aNotification{
    // Resize for the stupid keyboard
    NSDictionary* info = [aNotification userInfo];
    CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;

    CGRect rect = _textView.frame;
    rect.size.height -= kbSize.height;
    _textView.frame = rect;

    CGPoint p = [_textView contentOffset];
    [_textView setContentOffset:p animated:NO];
    [_textView scrollRangeToVisible:NSMakeRange([_textView.text length], 0)];
}

Это прекрасно работает в портретном режиме, но вид полностью исчезает в ландшафтном режиме.Есть ли более элегантное решение для борьбы с этим?Я читаю документацию «Яблоко» Управление клавиатурой , но она не может предложить много вопросов по ориентации.

1 Ответ

3 голосов
/ 28 апреля 2011

Итак, мое неудачное решение это

UIInterfaceOrientation o = [self interfaceOrientation];
if(o == UIInterfaceOrientationPortrait || o == UIInterfaceOrientationPortraitUpsideDown){
    rect.size.height -= kbSize.height;
}else if(o == UIInterfaceOrientationLandscapeLeft || o == UIInterfaceOrientationLandscapeRight){
    rect.size.height -= kbSize.width;
}

Который, я полагаю, является единственным способом решения этой проблемы. Я все еще хотел бы элегантное решение, хотя:)

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