【问题标题】:ios 8 keyboard issue when predictive is set on设置预测时的ios 8键盘问题
【发布时间】:2014-11-20 14:03:24
【问题描述】:

我正在开发一个聊天应用程序,它在视图上放置了 textview 和其他按钮。设置预测时,iOS8 键盘出现问题。 当预测关闭时,它工作正常,但它设置在我的视图中,其中放置了 textview 和其他按钮。

我在 viewDidLoad 中为 KeyboardWillShow 和 KeyboardWillHide 添加了 NSNotification。

viewDummy 是添加了 textview 和其他按钮的视图

- (void)keyboardWillShow:(NSNotification *)notification {
    NSDictionary* info = [notification userInfo];
    CGRect kKeyBoardFrame = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
    CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;

    [UIView animateWithDuration:0.2f animations:^{

        CGRect frame = viewDummy.frame;
        frame.origin.y -= kbSize.height;
        viewDummy.frame = frame;


        frame = bubbleTable.frame;
        frame.size.height -= kbSize.height;
        bubbleTable.frame = frame;
    }];
}


-(void) keyboardWillHide:(NSNotification *)note{

    NSDictionary* info = [note userInfo];
    CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;

    [UIView animateWithDuration:0.2f animations:^{

        CGRect frame = viewDummy.frame;
        frame.origin.y += kbSize.height;
        viewDummy.frame = frame;

        frame = bubbleTable.frame;
        frame.size.height += kbSize.height;
        bubbleTable.frame = frame;
    }];

}

【问题讨论】:

  • 如果您关闭键盘并再次显示,视图是否放错了位置? UIKeyboardWillChangeFrameNotificationUIKeyboardDidChangeFrameNotification 在打开/关闭预测输入时会发布通知。注册这些通知可能会对您有所帮助。

标签: ios objective-c xcode


【解决方案1】:
  • 我为解决此问题所做的工作是:
  • 根据差异手动调整 kbSize.height。
  • 在我的情况下,差异是高度,即 44。
  • 所以我所做的是 frame.origin.y += kbSize.height + 44 或 frame.origin.y -= kbSize.height + 44,我认为这可能会对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    相关资源
    最近更新 更多