swift & iOS/ios & xcode

[ios 개발] UITextFieldDelegate의 유용한 메소드 3가지

whale3 2022. 1. 31. 17:21

UITextField 를 사용하게 되면 ios 키보드도 사용하게 되는데 키보드를 해제하고 싶거나 키보드의 return 버튼을 눌렀을 때 무언가를 하고 싶을때 UITextFieldDelegate 에 선언되어 있는 메소드들 중에 가져다 사용하면 된다. 

 

이 때 해당 뷰 컨트롤러가 UITextFieldDelegate를 채택해야 하고, 뷰 컨트롤러에서 사용하는 UITextField 인스턴스의 delegate에 이 뷰 컨트롤러를 등록해줘야 아래 소개하는 메소드들이 작동한다. 

class WeatherViewController: UIViewController, UITextFieldDelegate { // UITextFieldDelegate를 채택
    @IBOutlet weak var searchTextField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        searchTextField.delegate = self // UITextField 인스턴스의 delegate에 이 뷰 컨트롤러를 등록
    }

}

 

1. textFieldShouldReturn

키보드에서 return을 눌렀을때 호출되는 메소드

 

2. textFieldShouldEndEditing

UITextField의 endEditing 메소드가 호출되면 호출된다. editing을 끝내도 되는지 묻는 메소드.

그래서 이 메소드 내부에서 텍스트 필드 입력 값에 대한 validation을 할 수도 있다.

이 메소드가 true를 리턴할 때만 아래 textFieldDidEndEditing 메소드가 호출된다.

 

3. textFieldDidEndEditing

textFieldShouldEndEditing가 true를 리턴하면 이 메소드가 호출된다. 혹은 뷰 컨트롤러에 textFieldShouldEndEditing가 구현되지 않았는데 UITextField의 endEditing 메소드가 호출되었을 때도 textFieldDidEndEditing가 호출된다. 

 

 

 

 

반응형