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가 호출된다.
반응형
'swift & iOS > ios & xcode' 카테고리의 다른 글
[ios 개발] 컬럼이 2개인 UIPickerView 구현하기 (0) | 2022.02.11 |
---|---|
[ios 개발] xcode에서 code snippet 코드 스니펫 만들기 (0) | 2022.02.08 |
[ios 개발] 키보드 사라지게 하기 (0) | 2022.01.31 |
[xcode] 버튼 모서리를 둥글게 하기 (0) | 2022.01.26 |
[xcode] 텍스트 필드에 숫자 키보드 띄우기 (keyboard type) (0) | 2022.01.26 |