import SwiftUI import PencilKit struct LeadSignatureCanvas: UIViewRepresentable { @Binding var drawing: PKDrawing @Environment(\.colorScheme) private var colorScheme func makeUIView(context: Context) -> PKCanvasView { let view = PKCanvasView() view.delegate = context.coordinator view.drawingPolicy = .anyInput // PencilKit renders black ink as white in Dark Mode, including existing strokes. // Keep the stored ink black; the PDF service exports onto a white document. view.tool = PKInkingTool(.pen, color: .black, width: 2) view.overrideUserInterfaceStyle = colorScheme == .dark ? .dark : .light view.backgroundColor = .clear view.isOpaque = false view.isScrollEnabled = false view.drawing = drawing view.accessibilityLabel = "Unterschrift" view.accessibilityHint = "Mit Finger oder Apple Pencil unterschreiben" return view } func updateUIView(_ view: PKCanvasView, context: Context) { context.coordinator.parent = self view.overrideUserInterfaceStyle = colorScheme == .dark ? .dark : .light if view.drawing != drawing { view.drawing = drawing } } func makeCoordinator() -> Coordinator { Coordinator(parent: self) } final class Coordinator: NSObject, PKCanvasViewDelegate { var parent: LeadSignatureCanvas init(parent: LeadSignatureCanvas) { self.parent = parent } func canvasViewDrawingDidChange(_ canvasView: PKCanvasView) { parent.drawing = canvasView.drawing } } }