inputAccessoryViewController

inputAccessoryViewController

在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/

10-08 20:39