如何从SwiftUI2应用程序条目获取NSView

如何从SwiftUI2应用程序条目获取NSView,swift,macos,swiftui,Swift,Macos,Swiftui,我正在将使用SwiftUI 1构建的macOS应用程序迁移到SwiftUI 2。有一项功能允许用户使用NSPrinterOperation将主视图保存为pdf,该功能采用NSView实例 目前,该应用程序位于SwiftUI 1上,带有AppDelegate,我可以通过该代码获得主视图 按钮(“打印”){ 让appDelegate=NSApp.delegate为!appDelegate let view=appDelegate.window.contentView!//返回在appDelegate

我正在将使用SwiftUI 1构建的macOS应用程序迁移到SwiftUI 2。有一项功能允许用户使用
NSPrinterOperation
将主视图保存为pdf,该功能采用
NSView
实例

目前,该应用程序位于SwiftUI 1上,带有
AppDelegate
,我可以通过该代码获得主视图

按钮(“打印”){
让appDelegate=NSApp.delegate为!appDelegate
let view=appDelegate.window.contentView!//返回在appDelegate.swift中设置的NSHostingView
...
NSPrintOperation(视图:视图,打印信息:newInfo).run()
}

升级到SwiftUI2后,
AppDelegate
不再存在,现在如何获取视图?

请参阅我的评论,了解如何设置AppDelegate(然后您可以访问它),但是您也可以通过
NSApp
直接从窗口查看内容,如

NSApp.mainWindow?.contentView


取决于您的windows配置。

请参阅我的评论,了解如何设置应用程序委派(然后您可以访问该委派),但是您也可以通过
NSApp
直接从窗口查看内容,如

NSApp.mainWindow?.contentView

取决于您的windows配置。

本主题应该会有所帮助。本主题应该会有所帮助。