import Foundation import SwiftUI import UIKit protocol CameraUIViewDelegate: AnyObject { func received(previewText: String) func received(text: String) } @available(iOS 15.0, *) class CameraUIView: UIView, UIKeyInput { weak var delegate: CameraUIViewDelegate? var hasText = false init() { super.init(frame: .zero) } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } // MARK: - UIKeyInput func insertText(_ text: String) { print("Setting input to: \(text)") delegate?.received(text: text) } func deleteBackward() { } // MARK: - UITextInput { func setMarkedText(_ markedText: String?, selectedRange: NSRange) { print("Changing marked text to \"\(markedText ?? "")\"") delegate?.received(previewText: markedText ?? "") } func unmarkText() { delegate?.received(previewText: "") print("Should unset previewInput") } }