当应用程序进入后台时,有没有办法延迟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/