如何将 SwiftUI TextField 中的换行符转义序列“\n”处理为换行符?
How can you process a newline escape sequence "\n" in a SwiftUI TextField as a line break?
我正在尝试创建一个简单的文本字段,允许输入带有换行符序列并输出带有换行符的文本。
struct Foo: View {
@State private var inputText: String
var body: some View {
VStack {
TextField("foo", text: $inputText)
Text(inputText)
}
}
}
换行符序列在 Text("hello\nworld")
中工作正常,但如果与 TextField 一起使用,将只显示“\n”而不是换行符。我也尝试访问绑定字符串的 wrappedValue 无济于事。我在这里错过了什么?
编辑:我对多行输入不感兴趣。我对像“hello\nworld”这样的单行输入很感兴趣。但是,当我通过 TextField 在绑定变量中捕获“hello\nworld”时,我没有看到我期望的输出,先是 hello,然后是换行符,然后是 world。相反,我看到的字符串与输入的完全一样:hello\nworld.
听起来您想要获取用户输入的字符串“Hello\nworld”(读作转义字符串为“Hello\nworld”)并替换文字(非转义) "\n" 加上换行符。
这样做可以:
struct ContentView: View {
@State private var inputText: String = ""
var body: some View {
VStack {
TextField("foo", text: $inputText)
Text(inputText.replacingOccurrences(of: "\n", with: "\n"))
}
}
}
我正在尝试创建一个简单的文本字段,允许输入带有换行符序列并输出带有换行符的文本。
struct Foo: View {
@State private var inputText: String
var body: some View {
VStack {
TextField("foo", text: $inputText)
Text(inputText)
}
}
}
换行符序列在 Text("hello\nworld")
中工作正常,但如果与 TextField 一起使用,将只显示“\n”而不是换行符。我也尝试访问绑定字符串的 wrappedValue 无济于事。我在这里错过了什么?
编辑:我对多行输入不感兴趣。我对像“hello\nworld”这样的单行输入很感兴趣。但是,当我通过 TextField 在绑定变量中捕获“hello\nworld”时,我没有看到我期望的输出,先是 hello,然后是换行符,然后是 world。相反,我看到的字符串与输入的完全一样:hello\nworld.
听起来您想要获取用户输入的字符串“Hello\nworld”(读作转义字符串为“Hello\nworld”)并替换文字(非转义) "\n" 加上换行符。
这样做可以:
struct ContentView: View {
@State private var inputText: String = ""
var body: some View {
VStack {
TextField("foo", text: $inputText)
Text(inputText.replacingOccurrences(of: "\n", with: "\n"))
}
}
}