在iPad上使用UITextView的InputAccessoryView

时间:2011-05-12 09:35:43

标签: uitextview

我正在使用UIView组合出几个视图,其中一个是UITextView。

当UITextView成为第一响应者时,我将UIView设置为其InputAccessoryView。 键盘在配件视图上很好用。

问题是它看起来像UITextView是第一个响应者,因为文本可以立即输入内部(不点击光标)但是当试图解除键盘时它不会下降,即使导航回键盘将继续保持。

只有当我再次点击UITextView时,我才会关闭键盘,当我向后导航时键盘会关闭。

有没有人知道,发生了什么?

我认为UIReponder可能会有一些递归,因为UITextView在其自己的inputAccessoryView中,任何想法如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

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

[self.view endEditing:YES];

答案 1 :(得分:0)

我发现原因是当设置为inputAccessoryView时,UITextView现在不是FirstResponder。无论如何,如果再次触摸UITextView,它将成为第一个响应者,然后一切正常。

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

  1. 观察UIKeyboardDidShowNotification:

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

  2. 收到UIKeyboardDidShowNotification后,再次将“发送第一个响应者”发送到UITextView(keyboardDidShow:)。

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

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