当像这样创建TextField
时
TextField(
"Describe...",
text: $text,
axis: .vertical
)
.focused(focused, equals: .prompt)
.textFieldStyle(.roundedBorder)
.lineLimit(2...)
.modifier(ClearButton(text: $text))
.submitLabel(.done)
.onSubmit { hideKeyboard()
print("test")
}
当键盘上的done按钮被按下时,它会创建一个新行,我不希望在TextField
中有任何新行。.submitLabel
应该可以做到这一点。所以我添加了,但它没有。
接下来我试着创建一个.onSubmit
回调函数,也不起作用,事实上,“test”从来没有被打印出来。
1条答案
按热度按时间zwghvu4y1#
这不是因为textfield的多行,而是因为轴。如果删除linelimit,问题仍然存在,但如果更改轴,textfield现在“工作”(它不是多行的)。如果你使用
TextEditor
也会发生同样的事情。但是,如果您希望多行textField能够不使用键盘,那么一个用户友好的解决方案就是添加一个工具栏。现在,用户将把textField解释为多行textField(因为有return按钮),并且可以选择禁用textField。