我一直在尝试在SwiftUI中创建多行TextField,但是我不知道怎么做。
这是我目前拥有的代码:
struct EditorTextView : View {
@Binding var text: String
var body: some View {
TextField($text)
.lineLimit(4)
.multilineTextAlignment(.leading)
.frame(minWidth: 100, maxWidth: 200, minHeight: 100, maxHeight: .infinity, alignment: .topLeading)
}
}
#if DEBUG
let sampleText = """
Very long line 1
Very long line 2
Very long line 3
Very long line 4
"""
struct EditorTextView_Previews : PreviewProvider {
static var previews: some View {
EditorTextView(text: .constant(sampleText))
.previewLayout(.fixed(width: 200, height: 200))
}
}
#endif
Run Code Online (Sandbox Code Playgroud)
但这是输出:
所以基本上我创建了一个多行文本字段,但是按 onSubmit 根本不起作用,我宁愿在双击 return 或类似的东西时提交。如果有一种方法可以避免提交时键盘折叠而不是使用多行,我将很感激被告知如何:)
每次 atextField的值更改时,我都尝试执行一个操作。
@Published var value: String = ""
var body: some View {
$value.sink { (val) in
print(val)
}
return TextField($value)
}
Run Code Online (Sandbox Code Playgroud)
但我得到以下错误。
无法将“已发布”类型的值转换为预期的参数类型“绑定”