반응형
키보드를 숨기는 방법
TextField
등 바깥 쪽을 탭하여 Storyboard
와 SwiftUI
앱 모두에서 키보드를 쉽게 해제하는 방법을 알아 보겠습니다.
SwiftUI
1. 편의상 새로운 Swift
파일을 생성해서 hideKeyboard extension
을 생성해주겠습니다.
import Foundation
import SwiftUI
extension UIApplication {
func hideKeyboard() {
guard let window = windows.first else { return }
let tapRecognizer = UITapGestureRecognizer(target: window, action: #selector(UIView.endEditing))
tapRecognizer.cancelsTouchesInView = false
tapRecognizer.delegate = self
window.addGestureRecognizer(tapRecognizer)
}
}
extension UIApplication: UIGestureRecognizerDelegate {
public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return false
}
}
2. 호출 방법 : .onAppear (perform : UIApplication.shared.hideKeyboard)
import SwiftUI
struct ContentView: View {
@State private var name = ""
var body: some View {
VStack {
TextField("아이디", text: $name)
}
.onAppear (perform : UIApplication.shared.hideKeyboard)
}
}
읽어주셔서 감사합니다🤟
'USEFUL CODE' 카테고리의 다른 글
Swift : 번들에 있는 sound 파일 재생 함수 (0) | 2021.07.29 |
---|---|
(CODE) SwiftUI 컬러 익스텐션 만들기 - 헥스코드활용 (0) | 2021.05.08 |
(CODE) 자동으로 두 줄로 문장을 나눠주는 메서드 (0) | 2021.03.31 |
(CODE) 베젤이 없는 기종과 있는 기기에 SafeArea 각각 적용법 (0) | 2021.03.25 |
(CODE) DateFormatter - 한국날짜 형식으로 (1) | 2021.03.23 |