当应用程序进入后台时,有没有办法延迟iOS所做的屏幕捕获?原因是我有时会在用户转到主屏幕时显示一个 View ,我希望删除该 View ,以便在恢复应用程序时不显示该 View 。有问题的 View 是SSHUDView(源代码here),我将其称为dismissAnimated:NO。这实际上在模拟器中有效,但在实际设备上无效(恢复时applicationWillResignActive仍显示)。有人知道如何处理吗?

最佳答案

如果您看一下SSHUDView的实现,它将使用UIWindow实例来显示内容。它使它成为自己的UIWindow键UIWindow:

[_hudWindow makeKeyAndVisible];

这可能就是为什么要去除它是如此棘手的原因。您可能会尝试执行SSHUDView使其自身消失以将焦点返回到主窗口之后执行的操作:
[[[[UIApplication sharedApplication] windows] objectAtIndex:0] makeKeyWindow];

当hud View 自行关闭时,它将resignKeyWindow发送到其私有(private)_hudWindow对象,您可以尝试在将焦点返回到主窗口之前获取该句柄,如下所示:
[[[[UIApplication sharedApplication] windows] objectAtIndex:1] resignKeyWindow];

但这可能会导致意外问题,因为您绕过了SSHUDView API ...

关于objective-c - 延迟应用程序DidEnterBackground屏幕截图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14161636/

10-12 13:09