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
}
}
}
}