텍스트필드가 아닌 다른 곳을 탭했을 때, ScrollView에서 스크롤 했을 때 키보드를 내릴 수 있는 방법입니다.
1. Cancel 버튼을 탭 했을 때 키보드 내리기
import Foundation
import SwiftUI
extension UIApplication {
func endEditing() {
sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
}
}
키보드를 내리는 endEditing 함수를 작성합니다.
Text("Cancel")
.foregroundColor(Color.theme.binanceColor)
.font(.subheadline)
.onTapGesture {
withAnimation {
showSearchView.toggle()
}
UIApplication.shared.endEditing() <-키보드 내리기
}
이후 원하는 컨텐츠에 onTapGesture로 작성해주면 탭할 때마다 키보드가 내려가게 됩니다.
2. ScrollView에서 스크롤 했을 때 키보드 내리기
AllCoinListView(viewModel: viewModel)
.padding(.top, 10)
.onTapGesture {
UIApplication.shared.endEditing()
}
.onAppear {
UIScrollView.appearance().keyboardDismissMode = .onDrag <- 스크롤하면 키보드 내리기
}
원하는 스크롤뷰에 onAppear로 위 코드를 작성해주면 간단하게 구현 할 수 있습니다.
ScrollView 키보드 내리기 참고:
'Project > SwiftUI 블록와이드' 카테고리의 다른 글
[SwiftUI Project] 코인 검색하기 Filtering with Combine (0) | 2022.09.17 |
---|---|
[SwiftUI Project] TextField FirstResponder 텍스트필드 포커싱 하기 (0) | 2022.09.16 |
[SwiftUI Project] 검색화면 전환 개선하기 GeometryReader (0) | 2022.09.15 |
[SwiftUI Project] 검색화면으로 전환하기 NavigationLink (0) | 2022.09.14 |
[SwiftUI Project] 재사용 가능한 NetworkingManager.. with Combine (0) | 2022.09.14 |
댓글