tableView.keyboardDismissMode 设置为 .Interactive 时使用键盘移动工具栏

Move toolbar with keyboard when tableView.keyboardDismissMode is set to .Interactive

我有一个消息视图,带有类似于消息应用程序中的工具栏。我正在使用 AutoLayout 并且有从 toolbar.bottombottomlayoutguide.bottom 的约束,我将 constant 更改为 notification.userInfo[UIKeyboardFrameEndUserInfoKey] 并通知 UIKeyboardWillShowNotification.

在这个视图中,我有一个 tableView,我已将 keyboardDismissMode 设置为 Interactive。现在我遇到的问题是我无法使用上述方法将我的工具栏向下移动,因为这不会是交互式的(我只有一个用于 willhide 和 didhide)。

我怎样才能让它具有互动性?

编辑:澄清

使用 UIKeyboardWillHideNotificationUIKeyboardDidHideNotification 不是一个选项,因为我只收到 2 个通知,一次是用户开始向下滑动,一次是键盘隐藏。当我有 tableView.keyboardDismissMode.Interactive 时,用户可以改变主意并在我得到 UIKeyboardWillHideNotification 时仍然让键盘可见。

另加"UIKeyboardWillHideNotification"。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onUIKeyboardWillHideNotification:) name:UIKeyboardWillHideNotification object:nil];

稍作搜索后抱歉。

好像是当你向下拖动tableView的时候UIKeyboard动画没有提示

有2个解。

  1. 将您的工具栏添加到 inputAccessoryView。

  2. 添加一个0高度的inputAccessoryView。并观察它是 superView 的 frame(iOS 7) 还是 center(iOS 8)。查看更多 here

    或者直接使用open source