티스토리 뷰

반응형



SwiftUI로 iOS개발을 하다보면 UIKit을 사용했을때 처럼 키보드로 편집을 하다가 빈 공간을 터치할때 키보드를 내리도록 하고 싶을 때가 있습니다.
보통 터치를 끝냈을때 빈 뷰를 터치하면 키보드가 내려가도록 구현하곤 하기 때문에 이때 키보드가 내려가지 않으면 어색할 수가 있죠. 이때 간단하게 SwiftUI에서 빈 공간(TextField 이외의 빈 View 공간)을 터치하여 키보드를 내리는 방법을 알아보겠습니다.


SwiftUI TextField 이외 빈 View 공간 터치로 키보드 내리는 방법
1) View Extensioin 메서드 구현 후 사용하기

View extension 을 만들어서 텍스트 필드 편집이 끝났을때 위와 같이 UIKit에서도 활용하는 resignFirstResponder 메서드를 호출 시키면, 키보드를 내릴 수 있습니다. 먼저 View Extension 내에 위와 같은 메서드를 구현해주세요.

빈 곳을 탭 했을때 키보드를 내리고 싶은 뷰 하단에 위와 같이 onTapGesture 이벤트 메서드를 추가해줍니다. 그렇게 되면 빈 뷰를 터치했을때 키보드가 내려가도록 할 수 있습니다.

2) TCA(The Composable Architecture)에서 빈 View 공간 터치로 키보드 내리는 방법

View Extension 구현 없이 TCA의 Root Action에 onTapGesture를 추가해줍니다.

Root Reducer 내에 onTapGesture에 대한 코드를 작성합니다. 앞서 1번 방법에서 소개했던 코드와 동일하게 작성했습니다.

RootView의 WithViewStore 내에 onTapGesture 이벤트가 발생할 때 onTapGesture Action을 동작시켜주면 1번 방법처럼 빈 공간 터치 시 키보드가 내려가도록 구현이 가능합니다.
아래는 빈 공간 터치 시 키보드가 내려가는 영상 예시입니다. 관련 의견 있으시면 언제든 댓글 달아주세요. 감사합니다.


SwiftUI TextField 이외 View 터치로 키보드 내리는 방법 적용 후 동작 예시



반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함