InputAccessoryView的viewWillDisappear:在iOS 9中早期调用的方法

时间:2015-09-04 20:53:22

标签: ios objective-c ios9 inputaccessoryview ios-9-beta5

我在iOS 9中遇到了一个非常不幸的错误。看来当你设置UITextField.inputAccessoryView时,该视图的viewWillDisappear:viewDidDisappear:方法会过早地被调用(当时键盘完成动画制作。)

我已经加了一个gif来证明这个问题。当视图变为红色时,它的viewWillDisappear:方法被调用。奇怪的是,当您关闭键盘时,会再次调用viewWillDisappear:viewDidDisappear:。但是,viewWillAppear:只被调用一次。

有没有人遇到类似的问题?我使用viewWillDisappear:viewDidDisappear:来关闭控制器,显然早期的通话会导致不必要的行为。

注意:以下是我创建和设置附件视图的方法。 AccessoryViewController.m中没有什么值得注意的。在一个干净的项目中重现了这个问题。它在iOS 8上不存在。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    if (self.textField.inputAccessoryView == nil) {
        self.textField.inputAccessoryView = self.vc.view;
    }
    return YES;
}

- (UIViewController *)vc {
    if (!_vc) _vc = [[AccessoryViewController alloc] init];
    return _vc;
}

enter image description here

0 个答案:

没有答案