2011-04-04 88 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. 
    } 
}