SWIFTUI:防止在按下TextField中的返回键时键盘弹出



我在SwiftUI中使用TextField。按下回车键键盘就会自行关闭。

是否有任何方法可以保持键盘向上,并保持TextField的可编辑位置。

感谢

有一种变通方法适用于iOS 15+,但它仍然会创建键盘的弹跳动画。

如果您有多个文本字段,则可以将enum@FocusState一起使用,而不是使用Bool

struct ContentView: View {
@FocusState var focused: Bool
@State var text: String = ""
var body: some View {
TextField("Text", text: $text)
.focused($focused)
.onSubmit {
focused = true
}
}
}

为了在不跳动键盘的情况下实现更好的解决方案,我建议使用伟大的第三方库Introspect:

import Introspect
class TextFieldKeyboardBehavior: UIView, UITextFieldDelegate {
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
return false
}
}
struct ContentView: View {
@State var text: String = ""
var textFieldKeyboardBehavior = TextFieldKeyboardBehavior()

var body: some View {
TextField("Text", text: $text)
.introspectTextField { textField in
textField.delegate = textFieldKeyboardBehavior
}
}
}

最新更新