티스토리 뷰
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 터치로 키보드 내리는 방법 적용 후 동작 예시
'iOS 개발 > SwiftUI, Combine' 카테고리의 다른 글
Combine Publisher, 연산자로 키보드검색, API 요청, 응답 처리방법 (0) | 2022.09.29 |
---|---|
iOS 앱 URL struct 사용, 웹페이지 이동하는 방법 (0) | 2022.09.18 |
iOS, Composable Architecture 개요 및 특징 알아보기 (0) | 2022.03.19 |
SwiftUI 코드작성 결과 Preview로 띄워서 보는방법 (0) | 2022.02.20 |
Combine 기초, Publisher Subscriber 구독 간 동작방식 (0) | 2022.01.12 |
- Total
- Today
- Yesterday
- 프로그래머스swift
- uikit
- swift
- swift string
- ios
- 알고리즘
- swift알고리즘
- swift문제
- SwiftUI
- 알고리즘문제
- 프로토콜
- 자연어처리
- 백준swift
- 김프매매
- 프로그래머스
- swift 문자열
- swift reduce
- CoreML
- Protocol
- Swift 알고리즘
- swift언어
- swift 기초
- 개발자문서
- Collection
- 컬렉션
- publisher
- createML
- 백준알고리즘
- 스위프트
- 부스트코스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |