UITextField를 입력 한 후 입력 키보드를 닫는 방법

iOS 앱에서 UITextField에서 입력 필드를 구현했을 때 입력용 키보드가 표시되어 있는 상태에서 취할 수 있는 대처 방법입니다.

1. 키보드 입력 결정



입력용 키보드의 오른쪽 하단 부분을 결정 표기로 한다



아래와 같이 UITextField의 'Return Key'를 'Done'으로 설정



UITextFieldDelegate를 ViewController에 구현



ViewController.swift
class ViewController : UIViewController, UITextFieldDelegate {

    @IBOutlet var textField : UITextField!

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

    func textFieldShouldReturn(textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    }
    ...
}

포인트는 아래 2점.
  • UITextFieldDelegate의 구현을 UITextField.delegate로 설정
  • textFieldShouldReturn 메서드에 UITextField.resignFirstResponder

  • 위를 구현하면 키보드 입력 결정 버튼을 사용하여 입력 키보드를 숨길 수 있습니다.

    2. UITextField 이외의 부분을 터치



    또 하나가 UITextField 이외의 부분을 터치했을 경우에 비표시로 하는 방법입니다.
    ViewController의 touchesBegan 메소드를 오버라이드(override) 해 이하의 내용을 구현하는 것으로 대응할 수 있습니다.
      override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
            if (self.textField.isFirstResponder()) {
                self.textField.resignFirstResponder()
            }
        }
    

    참고원


  • [iPhone] TextField 키보드를 닫는 3 가지 방법 (Swift)
  • 텍스트 필드에 텍스트를 입력한 후 Return에서 키보드를 숨기는 방법 [Swift1.2][UITextField]
  • 좋은 웹페이지 즐겨찾기