如何在SwiftUI中添加编号/项目符号列表?

如何在SwiftUI中添加编号/项目符号列表?,swiftui,swiftui-texteditor,Swiftui,Swiftui Texteditor,如何在SwiftUI的文本编辑器中执行此操作?我想到了从键盘上读回音TextField已更改OneEdit和onCommit,但TextEditor没有更改 在Notes应用程序中,它自动检测编号列表,并具有添加项目符号列表的按钮 我特别希望它在空行后添加数字/项目符号。(如有可能) 您可以使用onChange观察文本编辑器的文本更改。那么。通过执行[text]newText,您可以捕获旧值和新值 text是上一个文本 newText是当前文本 您可以将这些进行比较,以便在用户添加字符时仅添

如何在SwiftUI的
文本编辑器中执行此操作?我想到了从键盘上读回音
TextField
已更改
OneEdit
onCommit
,但TextEditor没有更改

在Notes应用程序中,它自动检测编号列表,并具有添加项目符号列表的按钮

我特别希望它在空行后添加数字/项目符号。(如有可能)


您可以使用
onChange
观察
文本编辑器的文本更改。那么。通过执行
[text]newText
,您可以捕获旧值和新值

  • text
    是上一个文本
  • newText
    是当前文本
您可以将这些进行比较,以便在用户添加字符时仅添加项目符号,而不是删除字符

请注意,我的实现还不能处理粘贴大范围文本的问题


这篇文章可能会有帮助,谢谢!也许你有一个主意,如果点是多行的,如何进行适当的缩进,我只是尝试添加两个
空格…(但不喜欢)@mikemas我认为在这种情况下,最好在单独的视图中添加项目符号(而不是在文本编辑器中)。这肯定会更复杂,也许可以把它放到另一个问题上?
struct ContentView: View {
    @State var text = "\u{2022} "

    var body: some View {
        TextEditor(text: $text)
            .frame(height: 400)
            .border(Color.black)
            .onChange(of: text) { [text] newText in
                if newText.suffix(1) == "\n" && newText > text {
                    self.text.append("\u{2022} ")
                }
            }
    }
}