如何检测键盘顶部的单词建议栏是否显示?

时间:2013-10-11 09:47:58

标签: ios objective-c uikeyboard

我正在开发一个聊天应用程序,当键盘出现方法时我发现了一个问题。我正在使用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位置不起作用,还有另一种方法可以将textview放在键盘顶部吗?

2 个答案:

答案 0 :(得分:11)

而不是使用它,

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

试试这个

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

答案 1 :(得分:0)

条件是如果用户输入的文字位于第一行,则设置[textview setScrollEnabled:NO],否则设置为YES