我正在使用UIView组合出几个视图,其中一个是UITextView。
当UITextView成为第一响应者时,我将UIView设置为其InputAccessoryView。 键盘在配件视图上很好用。
问题是它看起来像UITextView是第一个响应者,因为文本可以立即输入内部(不点击光标)但是当试图解除键盘时它不会下降,即使导航回键盘将继续保持。
只有当我再次点击UITextView时,我才会关闭键盘,当我向后导航时键盘会关闭。
有没有人知道,发生了什么?
我认为UIReponder可能会有一些递归,因为UITextView在其自己的inputAccessoryView中,任何想法如何解决这个问题?
答案 0 :(得分:0)
我也有这个问题。解决了它:
[self.view endEditing:YES];
答案 1 :(得分:0)
我发现原因是当设置为inputAccessoryView时,UITextView现在不是FirstResponder。无论如何,如果再次触摸UITextView,它将成为第一个响应者,然后一切正常。
所以我在iPhone上的(丑陋)解决方案是:
观察UIKeyboardDidShowNotification:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
收到UIKeyboardDidShowNotification后,再次将“发送第一个响应者”发送到UITextView(keyboardDidShow:
)。
我已经测试过将代码放入textViewShouldBeginEditing:
但是那时,inputAccessoryView没有显示在屏幕上,所以它仍然不能成为第一个响应者?
@ takeshi-kaga我试过你的方式,但它不起作用。你可以分享更多细节吗?