【发布时间】:2014-11-07 03:31:17
【问题描述】:
长期潜伏者 - 第一次海报!
我在使用UITextView 重新创建一个栏时遇到问题,就像 WhatsApp 那样。
我正在使用自定义的UIView 子类,并懒惰地实例化它:
- (UIView *)inputAccessoryView
并返回 YES:
- (BOOL)canBecomeFirstResponder
现在,当UITextView 的大小增加时,我想更改inputAccessoryView 的大小。在 iOS 7 上,我只需更改所述视图框架的大小 - 而不是它的原点 - 然后调用 reloadInputViews 它将起作用:视图将向上移动,使其在键盘上方完全可见。
但是,在 iOS 8 上,这不起作用。使其工作的唯一方法是将框架的原点也更改为负值。这很好,除了它会产生一些奇怪的错误:例如,UIView 在输入任何文本时返回到“原始”框架。
我有什么遗漏吗?我很确定 WhatsApp 使用 inputAccessoryView,因为它们在拖动时会关闭键盘 - 仅在最新版本的应用程序中。
如果你能帮助我,请告诉我!或者,如果您希望我进行任何测试!
谢谢! :)
顺便说一句,这是我用来更新名为 composeBar 的自定义 UIView 的高度的代码:
// ComposeBar frame size
CGRect frame = self.composeBar.frame;
frame.size.height += heightDifference;
frame.origin.y -= heightDifference;
self.composeBar.frame = frame;
[self.composeBar.textView reloadInputViews]; // Tried with this
[self reloadInputViews]; // and this
【问题讨论】:
标签: ios objective-c ios8 inputaccessoryview