我正在开发一个聊天应用程序,当键盘出现方法时我发现了一个问题。我正在使用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放在键盘顶部吗?
答案 0 :(得分:11)
而不是使用它,
CGSize kbSize = [[userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
试试这个
CGSize kbSize = [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;
答案 1 :(得分:0)
条件是如果用户输入的文字位于第一行,则设置[textview setScrollEnabled:NO]
,否则设置为YES
。