我没有找到任何关于它的文档。我知道你可以在tableeview和其他uiview上使用.keyboardDismissMode
来解散键盘,但是你如何在SwiftUI中使用TextEditor()
呢?我现在有一个滑动手势功能,但是当文本编辑器变长并且必须滚动时,它不再识别手势。
代码:
VStack{
TextEditor(text: $newNote)
}
.gesture(DragGesture(minimumDistance: 20, coordinateSpace: .global)
.onEnded({ value in
if value.translation.width < 0 {
// left
}
if value.translation.width > 0 {
self.presentationMode.wrappedValue.dismiss()
hideKeyboard()
self.navigationBarBackButtonHidden = false
}
if value.translation.height < 0 {
}
if value.translation.height > 0 {
hideKeyboard()
self.navigationBarBackButtonHidden = false
}
}
))
extension View {
func hideKeyboard() {
let resign = #selector(UIResponder.resignFirstResponder)
UIApplication.shared.sendAction(resign, to: nil, from: nil, for: nil)}
}
Xcode 14/iOS 16
现在SwiftUI有内置的修饰符来管理这个:
TextEditor(text: $text)
.scrollDismissesKeyboard(.immediately) // << here !!