gpt4 book ai didi

objective-c - 隐藏 KeyWindow 以截取空白屏幕截图

转载 作者:行者123 更新时间:2023-11-29 11:08:36 26 4
gpt4 key购买 nike

我试图阻止 Apple 在应用挂起进入后台时截取当前屏幕内容的实现。我找到了一段可以工作的代码,但它有一个问题。它所做的是清除屏幕上的键盘窗口,因此在拍摄快照时,它是一个空白屏幕。这是该功能的代码片段:

- (void)applicationWillResignActive:(UIApplication *)application
{
[ UIApplication sharedApplication ].keyWindow.hidden = YES;
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
[ UIApplication sharedApplication ].keyWindow.hidden = YES;
}

上面代码的问题在于,当应用程序返回到前台时, View 消失了,因为它已被隐藏,我无法通过简单的方式取消隐藏

[ UIApplication sharedApplication ].keyWindow.hidden = NO;

在应用委托(delegate)的 applicationWillEnterForeground 方法中。一旦我将它隐藏在后台方法中,有谁知道恢复隐藏 View 的方法吗?现在它是一个黑屏,因为 View 已被隐藏。当您在进入后台然后返回之前隐藏一个键窗口时究竟会发生什么。您之前隐藏的那个keywindow不再是keywindow了吗?谁能指出我正确的方向?

谢谢

最佳答案

刚刚制作了一个演示项目并能够重现您的问题。实际上,当调用 applicationWillEnterForeground: 时,应用程序的 keyWindow 属性为 nil

很多时候,您的应用程序的委托(delegate)将引用其窗口 - 这通常是许多应用程序的 Xcode 默认模板。我能够通过调用

来解决问题
self.window.hidden = NO;

代替 [UIApplication sharedApplication.keyWindow.hidden = NO;。假设与大多数模板一样,您的应用程序委托(delegate)有一个窗口引用。

另一种对我有用的方法是调用 [self.window makeKeyAndVisible];

所有这些都是在 iOS 6 模拟器上完成的。

希望这对您有所帮助!

关于objective-c - 隐藏 KeyWindow 以截取空白屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12626017/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com