2017-02-14 5 views
0

Когда начинается мое приложение (на основе документа), я открываю все последние документы. Все документы начинаются в отдельных окнах. Моя цель - открыть все в одном окне на вкладках.Приложение на основе документов - как открыть последние документы, объединенные в одном окне

ответ

0

В Swift попробуйте следующее: в вашем делете делегат реализовать applicationDidFinishLaunching, вызвав «window.mergeAllWindows», где «окно» - это окно первого оконного контроллера первого документа. Обратите внимание, что 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 
      } 
     } 
    }   
} 
Смежные вопросы