在iOS 8中,Apple在UIResponder
下引入了一个名为inputAccessoryViewController
的新属性。但是,还没有文档说明如何使用它。
此外,在iOS 8中,设置inputAccessoryView
子类的UIViewController
属性并使该子类成为第一响应者似乎会导致 View Controller 泄漏。
我的问题是:如何在inputAccessoryViewController
子类中使用UIViewController
?这样可以解决内存泄漏问题吗?
最佳答案
如果要使用inputAccessoryViewController,则需要子类化任何UITextView或UITextField控件,并重写readwrite的inputAccessoryViewController属性。
@interface MyTextView: UITextView
@property (nonatomic, retain) UIInputViewController *inputAccessoryViewController;
@end
请注意,您提供的 View Controller 应该是UIInputViewController(将使您能够访问输入委托(delegate)和文本文档信息),并且如果调用[super loadView],则会创建“inputView”(作为self.view)。您的 subview 。此UIInputView的样式将适合键盘。在这种情况下,我还没有尝试过尝试从.xib加载。
我还发现适当调整了inputView的大小(并避免了一堆约束错误),我添加了以下代码
- (void)updateViewConstraints
{
self.view.frame = CGRectMake(0, 0, CGRectGetWidth(self.view.superview.frame), myAccessoryHeight);
[super updateViewConstraints];
}
关于ios - 如何在iOS 8中使用inputAccessoryViewController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27999320/