swift - 如何从 SwiftUI2 App 条目中获取 NSView
问题描述
我正在将使用 SwiftUI 1 构建的 macOS 应用程序迁移到 SwiftUI 2。有一个功能允许用户使用 pdf 将主视图保存为 pdf NSPrinterOperation
,它需要一个NSView
实例。
目前,该应用程序在 SwiftUI 1 上AppDelegate
,我可以通过此代码获取主视图
Button("Print") {
let appDelegate = NSApp.delegate as! AppDelegate
let view = appDelegate.window.contentView! // returns the NSHostingView set up in AppDelegate.swift
...
NSPrintOperation(view: view, printInfo: newInfo).run()
}
自从升级到 SwiftUI2 之后,AppDelegate
就不再存在了,我现在如何才能获得视图?
解决方案
请参阅我的评论以参考如何设置应用程序委托(然后您将可以访问),但是您也可以通过 直接从窗口查看内容NSApp
,例如
NSApp.mainWindow?.contentView
或者
NSApp.keyWindow?.contentView
取决于您的 Windows 配置。
推荐阅读
- google-cloud-functions - google-cloud/storage bucketFile.getSignedUrl 连接错误
- php - 从文件夹中访问 *.txt 的内容并循环并在 smarty 模板中显示结果
- php - 在 mySQL 中创建插入选择查询的问题
- css - Bootsfaces - Accordion:将箭头更改为字形并添加字幕
- hadoop - Oozie 协调员工作的未来行动数量有限
- codeigniter - 如何通过 .htacess 文件强制将 http://example.com 自动重定向到 https://example.com
- python - python 包中的函数如何映射到正确的文件名?
- flutter - 如何将共享功能添加到下面的飞镖代码
- android - 如何检测 Android Go?
- c++ - C++ 简单的问题,但对我来说很复杂