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
iOS UITextView sizeToFit 使 iPad 中内容文本的高度加倍
SWIFT iOS - 从多行 uitextview 获取带有换行符的文本,因为它们在屏幕上可见
iOS 7 + Calabash:带有 NSLinkAttributeName 的 UITextView 和链接上的可访问性不起作用