所以我有一个奇怪的问题而且我的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调试,我可以告诉你我的通知正在启动,但是当外部适配器断开时,它们会一个接一个地同时触发。