2013-10-11 2 views
4

Я разрабатываю приложение для чата, и я обнаружил проблему при использовании метода отображения клавиатуры. Я использую UIKeyboardDidShowNotification для перемещения текста чата и кнопки на клавиатуре. Но текстовое окно чата скрыто панель инструментов слова sugesstion при показе предложения слов или смене клавиатуры на другой язык, например, на японском. Высота клавиатуры, полученная UIKeyboardNotification, опаздывает. Итак, как определить, что панель инструментов подсказки показана или нет?Как определить строку подсказки слов на клавиатуре или нет?

- (void)keyboardWasShown:(NSNotification*)aNotification 
{ 
    NSDictionary *userInfo = [aNotification userInfo]; 
    CGSize kbSize = [[userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 
    CGRect rectTable = rTable; 
    rectTable.origin.y -= kbSize.height; 
    CGRect rectToolBar = rToolbar; 
    rectToolBar.origin.y -= kbSize.height; 

    [UIView animateWithDuration:0.25f 
        animations:^{ 
         [self.tableView setFrame:rectTable]; 
         [self.toolBar setFrame:rectToolBar]; 
        } 
    ]; 
} 

Если изменение TextView место doen't работы, есть еще один способ поставить TextView на верхней части клавиатуры?

+0

любой часть кода вы написали, разместить его здесь. Это поможет? –

+0

Я обновляю код. – Gates

ответ

0

Выполнено условие, что если пользователь напечатал текст в первой строке, затем установите [textview setScrollEnabled:NO] еще установленный YES.

+0

Я не хочу этого делать. Просто хочу разместить текст в верхней части строки слова advesstion на клавиатуре. – Gates

+0

Вы показываете предложения в отдельном uiview? –

+0

нет, слово sugesstion bar при типе с японской клавиатурой. – Gates

10

Вместо этого,

CGSize kbSize = [[userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 

попробовать этот

CGSize kbSize = [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size; 
Смежные вопросы