2011-04-04 85 views
3

如果设备(原始iPad)不支持镜像,但想要在iPad 2上使用屏幕镜像,我想在外部连接的显示器上显示唯一的内容。现在,当我尝试对此进行编码时如下:UIScreen mirroredScreen属性总是返回零

if ([UIScreen instancesRespondToSelector:@selector(mirroredScreen)] && [[UIScreen mainScreen] mirroredScreen] == nil) { 
    // Mirroring not supported. Present unique content on external display 
} 

[[UIScreen mainScreen] mirroredScreen]总是返回nil

我做错了什么?

回答

9

据我了解的文档,mirroredScreen将参考主屏幕,如果您访问实际上是镜像屏幕的辅助屏幕上的属性。如:

if ([[UIScreen screens] count] > 1) { 
    UIScreen *secondaryScreen = [[UIScreen screens] objectAtIndex:1]; 
    NSLog(@"%@", secondaryScreen.mirroredScreen); // will reference the mainScreen 
} 

[[UIScreen mainScreen] mirroredScreen]随后将始终返回nil因为mainScreen不镜像本身。

3

苹果有一个关于推荐的方式,如果屏幕镜像或不在这里检测:http://developer.apple.com/library/ios/#qa/qa1738/_index.html

UIScreen *aScreen; 

NSArray *screens = [UIScreen screens]; 
for (aScreen in screens) 
{ 
    if ([aScreen respondsToSelector:@selector(mirroredScreen)] 
       && [aScreen mirroredScreen] == [UIScreen mainScreen]) 
    { 
     // The main screen is being mirrored. 
    } 
    else 
    { 
     // The main screen is not being mirrored, or 
     // you are not running on a compatible device. 
    } 
}