2017-02-14 6 views

答えて

0

スウィフトでは、次のようにしてください。アプリケーションデリゲートで、 '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 
      } 
     } 
    }   
} 
関連する問題