본문 바로가기
iOS/iOS

[iOS] 화면 터치, Return/Enter 시 키보드 내리기(Hide keyboard)

by Dani K 2021. 11. 15.

 

1. 화면 터치

UIViewController의 터치 관련 메소드 중에 touchesBegan 메소드가 있다.

ViewController에 아래 코드를 추가하면 화면 터치 시 키보드가 내려간다.

 

class ViewController: UIViewController {
 
    ...
    
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        self.view.endEditing(true)
    }
}

 

2.  Return  키

화면 터치 외에도 TextField에서 입력을 완료한 후 Return 키를 눌렀을 경우 키보드가 내려가는 상황을 가장 많이 경험할 수 있다. TextField에서 키보드의 return 키를 누르면 resignFirstResponder()을 통해 포커스를 제거하고 키보드를 내려준다.

 

extension ViewController: UITextFieldDelegate {

    ...
    
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        self.view.endEditing(true)
    }
    
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder() // TextField 비활성화
        return true
    }
}

 

 

위 방법을 사용하려면 TextField의 Delegate를 self 로 지정해야 한다.

 

override func viewDidLoad() {
    super.viewDidLoad()
    textField.delegate = self
}

 

 

댓글