4

我正在开发一个聊天应用程序,当键盘出现方法时我发现了一个问题。我正在使用 UIKeyboardDidShowNotification 将我的聊天文本视图和按钮移动到键盘顶部。但是当显示单词建议或将键盘更改为其他语言(如日语)时,我的聊天文本视图被单词建议工具栏隐藏。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 放在键盘顶部?

4

2 回答 2

12

而不是使用这个,

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

尝试这个

CGSize kbSize = [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;
于 2014-01-30T06:06:30.817 回答
0

做了一个条件,如果用户输入的文本在第一行,则设置[textview setScrollEnabled:NO]else set YES

于 2013-10-11T11:40:17.250 回答