编辑文本编辑器 SwiftUI

Edit Text Editor SwiftUI

我正在尝试从另一个视图编辑绑定值的文本。但是文本编辑器不允许我这样做。

首先,我需要在 TextEditor 中查看 selectedNote.title 的先前值,然后我应该能够编辑标题。

struct EditNotePageView: View {
    @Binding var selectedNote: CDNoteModel!
    @State var text = ""
    var body: some View {
        TextEditor(selectedNote.title!, text: $text)
    }
}

我也这样试过。我可以在模拟器中看到我的 selectedNote.title,但是当我点击它时它什么也没做。

 struct EditNotePageView: View {
    @Binding var selectedNote: CDNoteModel!
    @State var text = ""
    var body: some View {
        Text(selectedNote.title!)
            .onTapGesture {
                text = selectedNote.title!
                TextEditor(text: $text)
            }
    }
}

您可以使用 onChange 属性

struct EditNotePageView: View {
    @Binding var selectedNote: CDNoteModel!
    @State var text = ""
    var body: some View {
        TextEditor("", text: $text)
        .onChange(of: text, perform: { value in
            selectedNote.title = value
        }
    }
}

你可以试试这个:

struct EditNotePageView: View {
    @Binding var selectedNote: CDNoteModel
    var body: some View {
        TextEditor(text: $selectedNote.title)
    }
}

ZStack Text 和 textEditor 用一点 .onAppear 解决了这个问题

  struct EditNotePageView: View {
    @Binding var selectedNote: CDNoteModel!
    @State var text = ""
    var body: some View {
        ZStack(alignment: .leading){
            Text(selectedNote.title!)
                .onAppear {
                    text = selectedNote.title!
                }
            TextEditor(text: $text)
        }
    }
}