Swift - 如何在文本编辑器中获取文本格式,例如在笔记应用程序中?斯威夫特用户界面

Leo*_*XUI 7 text swift swiftui

我目前有一个文本编辑器,我希望能够添加文本格式,就像在笔记应用程序中一样:

第一的第二

我尝试过UITextView.allowsEditingTextAttributes = true,但似乎没有效果。

任何想法都将受到高度赞赏。:)

Leo*_*bus 6

您可以创建一个自定义 TextView UIViewRepresentable 并将 allowedEditingTextAttributes 设置为 true :

创建一个名为 TextView.swift 的新 Swift 文件

import SwiftUI
struct TextView: UIViewRepresentable {
    
    @Binding var attributedText: NSMutableAttributedString
    @State var allowsEditingTextAttributes: Bool = false
    @State var font: UIFont?

    func makeUIView(context: Context) -> UITextView {
        UITextView()
    }

    func updateUIView(_ uiView: UITextView, context: Context) {
        uiView.attributedText = attributedText
        uiView.allowsEditingTextAttributes = allowsEditingTextAttributes
        uiView.font = font
    }
}
Run Code Online (Sandbox Code Playgroud)

然后您可以将其添加到您的内容视图中:

import SwiftUI

struct ContentView: View {
    @State var attributedText = NSMutableAttributedString(string: "")
    var body: some View {
        TextView(attributedText: $attributedText, allowsEditingTextAttributes: true, font: .systemFont(ofSize: 32))
            .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述