在iPad上使用UITextView的InputAccessoryView

问题描述:

我正在使用一个UIView,它们中的一个是UITextView。在iPad上使用UITextView的InputAccessoryView

当UITextView成为第一响应者时,我将UIView设置为它的InputAccessoryView。 键盘的配件视图正常。

问题是,它看起来像UITextView是第一响应者,因为文本可以立即键入内部(不需要点击光标),但是当试图解除键盘时,它不会关闭,即使向后导航键盘将保持不变。

只有当我再次点击UITextView时,我才能关闭键盘,并且当我导航回时,键盘熄灭。

有没有人有任何想法,发生了什么?

我认为可能会有一些与UIResponder递归,因为UITextView是在它自己的inputAccessoryView,任何想法我怎么能解决这个问题?

我也有这个问题。以解决它:

[self.view endEditing:YES]; 

我找到原因是,当被设置为inputAccessoryView,该UITextView的不FirstResponder现在。无论如何,如果你再次触摸UITextView,它将成为第一个响应者,然后一切都会好起来。

所以在iPhone上我的(丑陋的)的解决方案是:

  1. 观察UIKeyboardDidShowNotification:

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];

  2. 接收UIKeyboardDidShowNotification后,再次发送becomeFirstResponder到UITextView的(在keyboardDidShow:)。

我已经测试将代码置于textViewShouldBeginEditing:,但在那个时候,inputAccessoryView没有显示在屏幕上,所以它仍然不能成为第一个响应者?

@ takeshi-kaga我已经试过了你的方式,但它不起作用。你能分享更多的细节吗?