我正在使用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
}
}
}
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
}
}
}
onSubmit
代码呢?请参考https://stackoverflow.com/questions/77212497/prevent-keyboard-for-textfield-from-dismissing-after-a-return-but-need-to-dete - undefined