iOS 의 키보드를 보면 기본적으로 키보드를 내리는 키가 있지만 많은 이용자들이 화면을 탭했을 때 키보드가 내려가는 동작이 익숙하다. 아주 간단하게 SwiftUI에서 구현하는 방법이 있다.
1. Extension 선언
extension UIApplication {
func addTapGestureRecognizer() {
guard let window = windows.first else { return }
let tapGesture = UITapGestureRecognizer(target: window, action: #selector(UIView.endEditing))
tapGesture.requiresExclusiveTouchType = false
tapGesture.cancelsTouchesInView = false
tapGesture.delegate = self
window.addGestureRecognizer(tapGesture)
}
}
extension UIApplication: UIGestureRecognizerDelegate {
public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true // set to `false` if you don't want to detect tap during other gestures
}
}
2. 사용
@main
struct TestApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.onAppear(perform: UIApplication.shared.addTapGestureRecognizer)
}
}
}
위와 같이 최상단의 View에 onAppear를 호출하는것으로 모든 화면에서 해당 동작이 적용된다.
출처: https://stackoverflow.com/questions/56491386/how-to-hide-keyboard-when-using-swiftui
반응형
'ios > swiftUI' 카테고리의 다른 글
SwiftUI - Preview를 유용하게 사용하는법, previewLayout, 가로모드 Preview (0) | 2022.07.02 |
---|---|
SwiftUI - Color 16진수로 표기된 색상 사용하기, hex 색상 사용하기 (0) | 2022.07.02 |
SwiftUI에서 UIKit의 Alert 사용하기 (0) | 2022.05.10 |
SwiftUI에서 UIkit, StoryBoard 사용하기 (0) | 2022.02.04 |
SwiftUI - 네비게이션바 색상 동적으로 변경하기 (1) | 2022.01.06 |