여백, 엔터키 누르면 키보드 내려가게 하기
먼저 UITextFieldDelegate 프로토콜을 채택한다.
class ViewController: UIViewController, UITextFieldDelegate {
// ... 기존 코드 ...
}
Swift
복사
그리고 viewDidLoad 메서드 내에 다음 코드를 추가하여 탭 제스처 인식기를 설정하고 텍스트 필드 델리게이트를 할당합니다.
override func viewDidLoad() {
super.viewDidLoad()
// ... 기존 코드 ...
// 배경을 탭하면 키보드를 내리기 위해 탭 제스처 인식기를 추가합니다
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
view.addGestureRecognizer(tapGesture)
// 텍스트 필드의 델리게이트를 self로 할당합니다
ageTextField.delegate = self
}
Swift
복사
다음으로, 탭 제스처를 처리하고 키보드를 내리는 dismissKeyboard 함수를 추가합니다.
@objc private func dismissKeyboard() {
view.endEditing(true)
}
Swift
복사
마지막으로, UITextFieldDelegate 메서드인 textFieldShouldReturn을 구현하여 Return (Enter) 키를 눌렀을 때 키보드가 내려가도록 합니다.
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
Swift
복사
textFieldShouldReturn 메서드를 구현하면, 사용자가 ageTextField를 편집하는 동안 Return (Enter) 키를 누르면 키보드가 내려갑니다. 또한 탭 제스처 인식기를 사용하면 배경을 탭하면 키보드도 내려갑니다.