在我的应用程序中,我创建了一个辅助窗口并为其添加了一个子视图,这样主屏幕(ipad)和外部显示屏幕显示不同的东西。
我的问题是,我不再想要唯一的内容显示后,我怎么能重新启用默认的应用程序镜像?我试着释放我创建的窗口,也试着设置屏幕镜像屏幕属性,但它是只读的。
下面是在外部监视器上添加唯一内容的代码:
if ([[UIScreen screens] count] > 1) {
//allocate another window
UIScreen* secondScreen = [[UIScreen screens] objectAtIndex:1];
CGRect screenBounds = secondScreen.bounds;
secondWindow = [[UIWindow alloc] initWithFrame:screenBounds];
secondWindow.screen = secondScreen;
shareViewController.view.hidden = NO;
//add the shareViewController's view to the external display
shareViewController.view.frame = secondWindow.frame;
[secondWindow addSubview:shareViewController.view];
secondWindow.hidden = NO;
}
对我来说,简单地将第二个窗口设置为nil是行不通的。下面的代码组合完成了这个任务。首先,重置secondWindow,其次,重新分配主屏幕,使其再次与触摸一起工作。
// Reset the second window
self.secondWindow.frame = CGRectZero;
self.secondWindow.screen = nil;
self.secondWindow = nil;
// Reassign your main screen to make it work with touches again
UIWindow *mainScreen = [[[UIApplication sharedApplication] windows] firstObject];
[mainScreen makeKeyAndVisible];
只需删除窗口。然后镜像再次激活。
secondWindow = nil;