将ipad连接到外接显示器

Cha*_*lie 1 cocoa-touch ipad

我正在尝试使用以下内容将我的ipad应用程序连接到外部屏幕(现在不检查正确的分辨率 - 只是希望它启动并运行).

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
     [window addSubview:[navigationController view]];
     if ([[UIScreen screens] count] > 1) {
          window.screen = [[UIScreen screens] objectAtIndex:1];
     }
     [window makeKeyAndVisible];
     return YES;
}
Run Code Online (Sandbox Code Playgroud)

这是否应该将所有内容重定向到外部显示器?它的触摸/手势效果如何?我在Apple应用程序中看到,控件等都留在了ipad屏幕上......

Bra*_*son 5

您需要为要显示的每个屏幕(iPad,外部显示器等)设置单独的UIWindow实例.而不是简单地设置您的主要的UIWindow的屏幕到外部显示器,你要创建该显示器一个独特的UIWindow和移动可能从iPad窗口您欣赏到外部显示窗口.否则,您将无法在iPad屏幕上接收触摸输入以控制远程显示的内容.

例如,以下代码将在外部显示器上创建一个新窗口(具有externalScreen适当的UIScreen实例):

CGRect externalBounds = [externalScreen bounds];
externalWindow = [[UIWindow alloc] initWithFrame:externalBounds];

UIView *backgroundView = [[UIView alloc] initWithFrame:externalBounds];
backgroundView.backgroundColor = [UIColor whiteColor];

[externalWindow addSubview:backgroundView];

[backgroundView release];

externalWindow.screen = externalScreen;
[externalWindow makeKeyAndVisible];
Run Code Online (Sandbox Code Playgroud)

您还需要在应用程序中监视屏幕连接/断开事件,并适当地处理它们.要做到这一点,请倾听UIScreenDidConnectNotificationUIScreenDidDisconnectNotification.

如果你想看到一种处理外部显示器的方法,我在我的Molecules iPhone/iPad应用程序的最新代码中有一个粗略的例子.