iPad 上带有 UITextView 的 InputAccessoryView

Posted

技术标签:

【中文标题】iPad 上带有 UITextView 的 InputAccessoryView【英文标题】:InputAccessoryView with UITextView on iPad 【发布时间】:2011-05-12 09:35:42 【问题描述】:

我正在使用由几个视图组合而成的 UIView,其中一个是 UITextView。

当 UITextView 成为第一响应者时,我将 UIView 设置为其 InputAccessoryView。 键盘的辅助视图很好用。

问题在于它看起来 UITextView 是第一个响应者,因为可以立即在内部输入文本(无需单击光标)但是当尝试关闭键盘时它不会关闭,即使导航回键盘将保持不变。

只有当我再次点击 UITextView 时,我才能关闭键盘,当我返回时,键盘会关闭。

有没有人知道,这是怎么回事?

我认为 UIResponder 可能有一些递归,因为 UITextView 在它自己的 inputAccessoryView 中,有什么想法可以解决这个问题吗?

【问题讨论】:

【参考方案1】:

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

[self.view endEditing:YES];

【讨论】:

【参考方案2】:

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

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

    观察 UIKeyboardDidShowNotification:

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

    收到UIKeyboardDidShowNotification后,再次向UITextView发送becomeFirstResponder(keyboardDidShow:)。

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

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

【讨论】:

以上是关于iPad 上带有 UITextView 的 InputAccessoryView的主要内容,如果未能解决你的问题,请参考以下文章

iPad UIPopoverController 不会遍历 UITextView 中的 inputView

在 UITextView 上删除带有 alpha 动画的 CAGradientLayer

Ipad dev:在 UITextview 中弹出单词

iOS UITextView sizeToFit 使 iPad 中内容文本的高度加倍

SWIFT iOS - 从多行 uitextview 获取带有换行符的文本,因为它们在屏幕上可见

iOS 7 + Calabash:带有 NSLinkAttributeName 的 UITextView 和链接上的可访问性不起作用