2017-02-14 65 views

回答

0

在Swift中,试试这个:在您的应用程序中,通过调用'window.mergeAllWindows'实现applicationDidFinishLaunching,其中'window'是第一个文档的第一个窗口控制器的窗口。请注意,mergeAllWindows在Mac OS 10.12中可用。

'DispatchQueue.main.asyncAfter'用于确保在调用mergeAllWindows时窗口已经恢复,您可能更喜欢更好的方式来确保所有窗口都已恢复。

func applicationDidFinishLaunching(_ aNotification: Notification) { 

    let dc = NSDocumentController.shared() 

    // … 

    DispatchQueue.main.asyncAfter(deadline: DispatchTime.now()) {() -> Void in 

     if dc.documents.count > 0 { 
      let doc = dc.documents[0] 

      let wcs = doc.windowControllers 

      guard let window = wcs[0].window else { return } 

      if #available(OSX 10.12, *) { 
       window.mergeAllWindows(self) 
      } else { 
       // Fallback on earlier versions 
      } 
     } 
    }   
} 
相关问题