SwiftUI/Views
[SwiftUI] Form에서 스크롤 시 키보드 숨기기
_히처리_
2023. 9. 14. 22:41
Form에서 TextField가 있을 때, 스크롤 시 키보드는 감추는 예제이다.
먼저 키보드를 감추는 메서드를 View에 확장해서 쉽게 키보드를 감출 수 있게 한다.
import Foundation
import SwiftUI
extension View {
func hideKeyboard() {
UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
}
}
그리고 Form에 simultaneousGesture 수정자를 추가하고, 드래그 제스처가 발생 시 키보드를 감추는 메서드를 호출한다.
var body: some View {
Form {
...
}
.simultaneousGesture(DragGesture().onChanged({ _ in
hideKeyboard()
}))
}
}