Swift 基于文档的应用程序-如何在一个窗口中打开最近合并的文档
当我的应用程序(基于文档)启动时,我会打开所有最近的文档。所有文档都从单独的窗口开始。我的目标是在选项卡中打开“一体式”窗口。在Swift中,尝试以下操作:在应用程序中,通过调用“window.mergeAllWindows”实现ApplicationIDFinishLaunching,其中“window”是第一个文档的第一个窗口控制器的窗口。请注意,mergeAllWindows在Mac OS 10.12中可用 “DispatchQueue.main.asyncAfter”用于确保在调用mergeAllWindows时已还原窗口,您可能希望使用更好的方法来确保已还原所有窗口Swift 基于文档的应用程序-如何在一个窗口中打开最近合并的文档,swift,macos,cocoa,nswindow,nsdocument,Swift,Macos,Cocoa,Nswindow,Nsdocument,当我的应用程序(基于文档)启动时,我会打开所有最近的文档。所有文档都从单独的窗口开始。我的目标是在选项卡中打开“一体式”窗口。在Swift中,尝试以下操作:在应用程序中,通过调用“window.mergeAllWindows”实现ApplicationIDFinishLaunching,其中“window”是第一个文档的第一个窗口控制器的窗口。请注意,mergeAllWindows在Mac OS 10.12中可用 “DispatchQueue.main.asyncAfter”用于确保在调用mer
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
}
}
}
}