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

Posted

技术标签:

【中文标题】如何检测键盘顶部的单词建议栏是不是显示?【英文标题】:How to detect word suggestion bar on top of keyboard is showed or not?如何检测键盘顶部的单词建议栏是否显示? 【发布时间】:2013-10-11 09:47:57 【问题描述】:

我正在开发一个聊天应用程序,当键盘出现方法时我发现了一个问题。我正在使用 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 放在键盘顶部?

【问题讨论】:

您编写的任何代码部分,请在此处发布。会有帮助吗? 我用代码更新。 【参考方案1】:

不要使用这个,

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

试试这个

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

【讨论】:

【参考方案2】:

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

【讨论】:

我不想那样做。只想将textview放在键盘的suggesstion word bar的顶部。 您是否在单独的 uiview 中显示建议? 不,用日文键盘输入时的提示栏。 对不起,我没有使用日文键盘。你能把你的问题说清楚吗?

以上是关于如何检测键盘顶部的单词建议栏是不是显示?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 检测键盘布局(例如 QWERTY、AZERTY)

快速更新键盘预测栏建议

如何将显示的建议文本转换为匹配的单词

使用vb.net保存数据时如何检测是不是有相同的单词

使用 Inputscope="Search" 关闭单词建议

Python 从键盘输入5个英文单词,输出以元音字母开头的单词?