2017-02-14 3 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 
      } 
     } 
    }   
} 
관련 문제