본문 바로가기

학습 노트/Swift UI Trick

SwiftUI에서 키보드 숨기기

SwiftUI가 버전업 되면서 여러 기능이 추가되는 가운데 여전히 지원하지 않는 기능은 Responder에 관한 제어 권한이다.
별도의 변수를 생성해 이를 이용해 제어하는 경우가 많은데, 그런 거창한 거 필요 없이 해제를 하고자 하는 경우가 있다.

#if canImport(UIKit)
extension View {
	func hideKeyboard() {
		UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
	}
}
#endif

간단하게 UIKit에 정의된 Responder 메서드를 불러와 파라미터를 전부 비워주면 responder가 해제된다.
위와 같이 별도의 함수로 선언을 하면 이벤트 발생 시 간단하게 사용할 수 있다.

최근에 키보드를 숨기는 데 사용하기 위해 찾아봤다.