아이폰 이용자들은 텍스트필드 클릭시 키보드가 올라왔을때 내리는건 화면 터치로 내리는게 일반적입니다.
SwiftUI 에서는 전역으로 터치시 키보드가 내려갈수 있게 설정할 수 있습니다.
extension UIApplication: UIGestureRecognizerDelegate {
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)
}
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
}
}
onAppear 호출될때 addTapGestureRecognizer 한번 호출해 주면 전체 프로젝트에서 화면 터치시 키보드가 내려갑니다.
struct SwiftUIComponemtApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.onAppear(perform: {
UIApplication.shared.addTapGestureRecognizer()
})
}
}
}
'SwiftUI' 카테고리의 다른 글
[SwiftUI] App to App / Universal-Link Scheme 처리 이벤트 (0) | 2024.04.17 |
---|---|
[SwiftUI] View 백그라운드/포그라운드 이벤트 체크 (0) | 2024.04.17 |
[SwiftUI] AppDelegate 추가해서 Push 설정하기 (0) | 2024.04.17 |
[SwiftUI] UIView <-> SwiftUI View 호출 방법 (0) | 2024.04.12 |
[SwiftUI] UIViewController <-> SwiftUI View 호출방법 (0) | 2024.04.12 |