为什么我的iOS(Swift)应用程序无法正确识别某些外部显示设备?

时间:2017-10-07 02:28:59

标签: ios swift

所以我有一个奇怪的问题而且我的google-fu完全没有为我提供从哪里开始调查的基础,所以即使是有用的搜索关键字也可能有用。

我有一个用swift编写的iOS应用程序。我有一个模型连接到接收有关外部显示器的通知。在某些适配器上,我能够正确检测并响应外部显示器的存在,并以编程方式将其切换为镜像以外的其他内容(请参阅下面的代码块)。但是使用另一个适配器,而不仅仅是“神奇地”成为第二个屏幕,我被要求“信任”外部设备,它只是镜像设备屏幕。根本不是预期的设计。

func addSecondScreen(screen: UIScreen){
    self.externalWindow = UIWindow.init(frame: screen.bounds)
    self.externalWindow!.screen = screen
    self.externalWindow!.rootViewController = self.externalVC
    self.externalWindow!.isHidden = false;
}

@objc func handleScreenDidConnectNotification( _ notification: NSNotification){
    let newScreen = notification.object as! UIScreen
    if(self.externalWindow == nil){
        addSecondScreen(screen: newScreen)
    }
}

@objc func handleScreenDidDisconnectNotification( _ notification: NSNotification){
    if let externalWindow = self.externalWindow{
        externalWindow.isHidden = true
        self.externalWindow = nil
    }
}

这里最糟糕的问题是因为我连接到外部显示器来执行此操作,我甚至无法通过调试器运行此代码以查明发生了什么。我不知道从哪里开始。

有什么想法吗?

编辑:

感谢有人指出wifi调试,我可以告诉你我的通知正在启动,但是当外部适配器断开时,它们会一个接一个地同时触发。

0 个答案:

没有答案