이 방법을 사용하면 키보드 를 숨길 수 있습니다 . 스페이서를!
먼저이 기능을 추가하십시오 (Credit Given To : Casper Zandbergen, SwiftUI의 Spacer of HStack 에서 탭할 수 없음 )
extension Spacer {
public func onTapGesture(count: Int = 1, perform action: @escaping () -> Void) -> some View {
ZStack {
Color.black.opacity(0.001).onTapGesture(count: count, perform: action)
self
}
}
}
다음으로 다음 두 가지 기능을 추가하십시오 (이 질문에서 제공 한 크레딧 : rraphael).
extension UIApplication {
func endEditing() {
sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
}
}
아래 함수는 View 클래스에 추가됩니다. 자세한 내용은 rraphael의 최상위 답변을 참조하십시오.
private func endEditing() {
UIApplication.shared.endEditing()
}
마지막으로 이제 간단히 전화를 걸 수 있습니다.
Spacer().onTapGesture {
self.endEditing()
}
그러면 스페이서 영역이 키보드를 닫습니다. 더 이상 큰 흰색 배경보기가 필요하지 않습니다!
이 기술을 extension
현재 지원하지 않는 TapGestures를 지원하는 데 필요한 모든 컨트롤에 가상으로 적용 할 수 있으며 원하는 상황에서 키보드를 닫기 위해 onTapGesture
기능을 함께 호출 self.endEditing()
할 수 있습니다.