我有一个奇怪的视觉错误,它只影响 iOS 9 设备:
我的应用程序的登录 UIViewController
运行并在您点击按钮时获得 OAuth token ,就像您期望的那样。如果我的 API 的响应返回一个特定的状态代码,我会弹出一个 UIAlertView
告诉他们需要重置密码(如果他们在服务器端被标记为这样的话)。按下按钮后用于登录 resignFirstResponder
的电子邮件和密码字段,标准内容。
仅在 iOS 9 上,如果您点击重置路径,在您点击该警报 View 上的“确定”的那一刻,键盘弹回,可能持续 800 毫秒,然后再次消失。就好像有什么东西在排队等待展示它,但警报的存在阻止了它,直到你点击确定——在警报上点击确定后它绝对是即时的。
调试起来似乎非常棘手。我在 becomeFirstResponder
中添加了符号断点,它不会在发生此过程的任何地方调用。
关于如何调试/修复此问题的任何其他想法?它不影响 iOS 7 和 iOS 8,仅影响 iOS 9。
最佳答案
大约 30 分钟前我遇到了这个问题。
自 iOS9 发布以来,UIAlertView 已被弃用。
我们通过使用 UIAlertController 解决了这个问题,如下所示:
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Alert Title!" message:@"This is an alert message." preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil];
[alertController addAction:ok];
[self presentViewController:alertController animated:NO completion:nil];
这应该可以解决您的问题。
如果 animated = YES,您可能会遇到与以前相同的问题。这是 iOS9 的一个错误。
让我知道进展如何,以及这是否解决了您的问题。
关于iOS 9 - UIAlertView 关闭后键盘弹出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32744209/