作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在我的应用程序中,当应用程序进入后台时,我需要删除窗口中可见的所有警报。但问题是,我不想用
关闭它[alert dismissWithClickedButtonIndex:0 animated:YES]
因为,它会触发 clickedButtonAtIndex
委托(delegate)并调用一个方法。我不想在应用程序进入后台时避免这种情况。
我通过使用以下代码从 window 的 subViews 中删除 alertView 成功地做到了这一点
for (UIWindow *window in [UIApplication sharedApplication].windows) {
for (UIView *view in [window subviews]) {
if ([view isKindOfClass:[UIAlertView class]]) {
[view removeFromSuperview];
}
}
但问题是 _UIAlertNormalizingOverlayWindow 仍然存在,它阻止了用户交互。我还需要从我的窗口中删除 _UIAlertNormalizingOverlayWindow。请帮助我做到这一点,或者请提出任何替代方案来实现解决方案。
最佳答案
尽管这不是一个非常干净的解决方案(假设 ivar BOOL _backgroundAlertFlag
- (void)applicationDidEnterBackground:(UIApplication *)application {
_backgroundAlertFlag = YES;
// find your UIAlertView as you are doing already
[alert dismissWithClickedButtonIndex:0 animated:NO];
_backgroundAlertFlag = NO;
}
然后在您的 UIAlertViewDelegate
方法中:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if( !_backgroundAlertFlag )
{
// handle alert processing normally here
}
// other wise ignore (just dismiss)
}
关于iphone - 如何删除 _UIAlertNormalizingOverlayWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9701675/
在我的应用程序中,当应用程序进入后台时,我需要删除窗口中可见的所有警报。但问题是,我不想用 关闭它 [alert dismissWithClickedButtonIndex:0 animated:YE
我是一名优秀的程序员,十分优秀!