반응형
텍스트 필드 객체의 텍스트 편집 및 유효성 검사를 관리 하는 optional 메서드 집합이다.
Overview
텍스트 필드는 중요한 변경 사항에 대한 응답으로 delegate의 메서드를 호출한다. 이러한 방법을 사용하여 사용자가 입력한 텍스트를 확인하고 키보드와의 특정 상호 작용에 응답하며 전체 편집 프로세스를 제어할 수 있다. 텍스트 필드가 첫 번째 응답자(first responder)가 되어 키보드(또는 할당된 input view)를 표시하기 직전에 편집이 시작된다. 편집 프로세스는 다음과 같다
- first responder가 되기 전에, 텍스트 필드는 delegate의 textFieldShouldBeginEditing(_:) 메서드를 호출한다. 이 메서드를 사용하여 텍스트 필드의 내용 편집을 허용하거나 금지할 수 있다.
- 이제 텍스트 필드는 first responder가 된다.
이에 따라 시스템은 키보드(또는 해당 텍스트 필드의 input view)를 표시하고 필요에 따라 keyboardWillShowNotification과 keyboardDidShowNotification 알림을 전송한다. 만약 키보드 또는 다른 input view가 이미 보여진 상태라면, 시스템은 keyboardWillChangeFrameNotification과 keyboardDidChangeFrameNotification 알림을 대신 전송한다. - 텍스트 필드는 delegate의 textFieldDidBeginEditing(_:) 메서드를 호출하고 textDidBeginEditingNotification 알림을 전송한다.
- 텍스트 필드는 편집 되는 동안 다양한 delegate 메서드를 호출한다:
- 현재의 텍스트가 변경될때마다, textField(_:shouldChangeCharactersIn:replacementString:) 메서드를 호출하고 textDidChangeNotification 알림을 전송한다.
- 사용자가 텍스트 전체를 지우기 위해 제공되는 버튼을 누르면 textFieldShouldClear(_:) 메서드를 호출한다.
- 사용자가 키보드의 return 버튼을 누르면 textFieldShouldReturn(_:) 메서드를 호출한다.
- first responder에서 벗어나기 전에, 텍스트 필드는 delegate의 textFieldShouldEndEditing(_:) 메서드를 호출한다. 이는 현재의 텍스트의 유효성 검사를 위해 사용된다.
- 텍스트 필드가 first responder에서 벗어난다.
이후 시스템은 필요에 따라 키보드를 숨기거나 조정한다. 키보드를 숨길 때, 시스템은 keyboardWillHideNotification과 keyboardDidHideNotification 알림을 전송한다. - 텍스트 필드는 delegate의 textFieldDidEndEditing(_:) 메서드를 호출하고 textDidEndEditingNotification 알림을 전송한다.
Reference
- https://developer.apple.com/documentation/uikit/uitextfielddelegate
반응형
'iOS > iOS' 카테고리의 다른 글
[iOS] CGPoint, CGSize, CGRect (0) | 2022.06.22 |
---|---|
[iOS] Firebase를 활용한 로그인 (0) | 2022.01.13 |
[iOS] URLSession을 사용한 통신 (0) | 2022.01.11 |
[iOS] DispatchSourceTimer를 사용한 타이머 (0) | 2022.01.11 |
[iOS] UIView.animate를 활용한 애니메이션 처리 (0) | 2022.01.11 |
댓글