你怎么把键盘内部的文本编辑器?



我没有找到任何关于它的文档。我知道你可以在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 !!

最新更新