Клавиатура скрывает TabBar - PullRequest
       29

Клавиатура скрывает TabBar

8 голосов
/ 11 марта 2011

Я работаю в приложении TabBar.В одном представлении есть UISearchBar, и при нажатии появляется клавиатура.

Проблема в том, что клавиатура скрывает панель вкладок.

Знаете ли вы, как ее решить?

Ответы [ 3 ]

14 голосов
/ 09 февраля 2013

Прошло много времени с тех пор, как об этом спросили, но ради документации, вот так: Во-первых, подпишитесь на NSNotificationCenter, чтобы получить уведомление клавиатуры:

-(void) viewWillAppear:(BOOL)animated
{
 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillToggle:)
                                             name:UIKeyboardWillShowNotification object:nil];
 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillToggle:)
                                             name:UIKeyboardWillHideNotification object:nil];
}

не забудьте отписаться

- (void)viewWillDisappear:(BOOL)animated 
{
 [self.view endEditing:YES];
 [super viewWillDisappear:animated];
 [[NSNotificationCenter defaultCenter] removeObserver:self
                                                name:UIKeyboardWillShowNotification object:nil];
 [[NSNotificationCenter defaultCenter] removeObserver:self
                                                name:UIKeyboardWillHideNotification  object:nil];
}

Затем реализуйте функцию, которая будет вызываться центром уведомлений:

- (void) keyboardWillToggle:(NSNotification *)aNotification
{
 CGRect frame = [[[self tabBarController] tabBar] frame];
 CGRect keyboard = [[aNotification.userInfo valueForKey:@"UIKeyboardFrameEndUserInfoKey"] CGRectValue];
 frame.origin.y = keyboard.origin.y - frame.size.height;
 [UIView animateWithDuration:[[aNotification.userInfo valueForKey:@"UIKeyboardAnimationDurationUserInfoKey"] floatValue] animations:^
 {
     [[[self tabBarController] tabBar] setFrame:frame];
 }];

Это позволит анимировать TabBar в темпе клавиатуры и держать его на вершине.

0 голосов
/ 18 июня 2013

Я решил это, показав пользовательскую клавиатуру вместо родной uikeyboard.

Загрузите пример проекта по этой ссылке github .

настроить клавиатуру на нужную встроенную клавиатуру, будь то число или слово.

Затем поместите uibuttons под пользовательскую клавиатуру с контроллерами панели вкладок, как изображение как изображение ниже. Попробуйте это (будущие посетители), это может решить проблему.

enter image description here

0 голосов
/ 11 марта 2011

Насколько мне известно, вы не можете перемещать клавиатуру .. поэтому попробуйте использовать преобразование для перемещения панели вкладок над клавиатурой

Взято из здесь

Другая ссылка

...