SwiftUI 中的富文本视图

Rich TextView in SwiftUI

我正在尝试在 SwiftUI 中做一个简单的笔记应用程序,我想知道是否有任何库具有简单的富文本视图,允许用户以粗体、斜体、删除线、下划线等书写.

我试过 LEOTextView,但它有很多问题,我想看看是否有 100% SwiftUI 的方法来实现这一点,这样它会更容易与我的项目集成。我也不太了解 UIKit,所以如果它是在 SwiftUI 中制作的,添加更多功能会更容易。

抱歉,如果这是一个愚蠢的问题,请提前致谢。

TL;DR: 我只想要这样的东西

我想这就是起点:

import SwiftUI

// first wrap a UITextView in a UIViewRepresentable
struct TextView: UIViewRepresentable {
    @Binding var text: String

    func makeCoordinator() -> Coordinator {
        Coordinator(self)
    }

    func makeUIView(context: Context) -> UITextView {

        let textView = UITextView()
        textView.delegate = context.coordinator
        return textView
    }

    func updateUIView(_ uiView: UITextView, context: Context) {
        uiView.text = text
    }

    class Coordinator : NSObject, UITextViewDelegate {

        var parent: TextView

        init(_ uiTextView: TextView) {
            self.parent = uiTextView
        }

        func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
            return true
        }

        func textViewDidChange(_ textView: UITextView) {
            print("new text: \(String(describing: textView.text!))")
            self.parent.text = textView.text
        }
    }
}

struct ContentView: View {
     @State var text = ""

       var body: some View {
           TextView(
                text: $text)
       }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

SwiftUI 文本编辑器有一个文档齐全的库。它支持 iOS 13.0+ 和 macOS 10.15+,这是它的 link! HighlightedTextEditor

使用起来也很简单