UITextField导致应用程序在iOS 8上冻结

时间:2015-05-12 08:55:25

标签: ios objective-c ios8 uitextfield ios-simulator

我正在开发一个支持iOS 7和8的应用程序。该应用程序在iOS 7上运行正常,但是当我在iOS 8上运行它时,当我按下其中一个UITextFields时,它会冻结。

我已经阅读了其他答案,谈到没有UITextField作为自己的代表。以下是其中一个答案:is there any paper or an explanation on how to implement a two dimensional KMP?

然而,为了测试这一点,我已将新的UITextField拖入应用程序而未设置委托。我还拖出了UIButton

当我点击UIButton时,一切都很好。但是,当我单击UITextField(没有委托设置的那个)时,应用程序仍会冻结。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

首先再次感谢Leo的非常有益的评论。似乎无论何时按下UITextField viewWillLayoutSubviews都会被调用。

以下是应用程序的代码:

- (void)viewWillLayoutSubviews
{
    [super viewWillLayoutSubviews];
    self.view.superview.bounds = CGRectMake(0.0, 0.0, 616.0, 703.0);
}

似乎在iOS 8中你无法调用self.view.superview.bounds,因为它会导致无限循环。有关详细信息,请参阅以下答案:

https://stackoverflow.com/a/25934574/2126233

答案 1 :(得分:0)

就我而言,我重写了draw方法并改变了layer。无效循环发生在UITextField,当用户到达画布的末尾并且他想要输入更多时。