import SwiftUI import UniformTypeIdentifiers extension UTType { static var exampleText: UTType { UTType(importedAs: "systems.tranquil.map.wmap") } } struct MapDocument: FileDocument { var text: String init(text: String = "Hello, world!") { self.text = text } static var readableContentTypes: [UTType] { [.exampleText] } init(configuration: ReadConfiguration) throws { guard let data = configuration.file.regularFileContents, let string = String(data: data, encoding: .utf8) else { throw CocoaError(.fileReadCorruptFile) } text = string } func fileWrapper(configuration: WriteConfiguration) throws -> FileWrapper { let data = text.data(using: .utf8)! return .init(regularFileWithContents: data) } @MainActor func exportAsImage(withEvolution selectedEvolution: StageType) -> NSImage? { let renderView = MapRenderView( document: .constant(self), evolution: .constant(selectedEvolution)) let renderer = ImageRenderer(content: renderView) return renderer.nsImage } }