所以基本上我创建了一个多行文本字段,但是按 onSubmit 根本不起作用,我宁愿在双击 return 或类似的东西时提交。如果有一种方法可以避免提交时键盘折叠而不是使用多行,我将很感激被告知如何:)
小智 12
这是我使用过的解决方法:
struct SwiftUIView: View {
@State var text: String = ""
var body: some View {
TextField("text", text: $text, axis: .vertical)
.frame(width: 200, height: 200)
.multilineTextAlignment(.leading)
.textFieldStyle(.roundedBorder)
.font(.title)
.onChange(of: text) { newValue in
guard let newValueLastChar = newValue.last else { return }
if newValueLastChar == "\n" {
text.removeLast()
hideKeyboard()
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
hideKeyboard 是 View 扩展中定义的函数:
extension View {
func hideKeyboard() {
UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1710 次 |
| 最近记录: |