在视图B中,当显示键盘并使用interactivePopGestureRecognizer将viewController弹出到View A时,键盘仍然保留在此处:(
如何让键盘随着视图B移动? (如iMessage或Facebook Messenger)
ps:我尝试获取键盘视图并添加到self.view,它很有用,但我认为这不是一个好方法。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardDidShown)
name:UIKeyboardDidShowNotification object:nil];
和
- (void)keyboardDidShown
{
UIView * keyboardView = self.textView.inputAccessoryView.superview;
[self.view addSubview: keyboardView];
}
答案 0 :(得分:0)
您不会将keybordView添加到视图中。如果要显示UITextField / UITextView的键盘,请在该对象上调用becomeFirstResponder。在您的示例中,它应该是:
[self.textView becomeFirstResponder];
如果您想要隐藏键盘,请致电:
[self.textView resignFirstResponder];
如果您想要在关闭ViewA之前隐藏键盘,则应在启动动画以显示ViewB时在interactivePopGestureRecognizer的开头调用它。 希望它有所帮助。
// EXTENDED
我不知道您为什么要尝试将accessoryView作为子视图添加到视图中
- (void)keyboardDidShown
{
UIView * keyboardView = self.textView.inputAccessoryView.superview;
[self.view addSubview: keyboardView];
}
我不明白你为什么要使用通知中心。 解除视图时键盘保留的功能(作为iMessage应用程序)是标准功能。 只需使用
[self.textView becomeFirstResponder];
当您想要显示键盘而不要调用
时[self.textView resignFirstResponder];
弹出视图控制器时。 iOS为您完成工作。
答案 1 :(得分:0)
试试这个解决方案:
https://github.com/cotap/TAPKeyboardPop
这是一个轻量级类别,可以相应地监听interactivePopGestureRecognizer
手势和动画键盘。