본문 바로가기
iOS/iOS

[iOS] UITextFieldDelegate

by 원만사 2022. 4. 17.
반응형
텍스트 필드 객체의 텍스트 편집 및 유효성 검사를 관리 하는 optional 메서드 집합이다.

 

Overview

 텍스트 필드는 중요한 변경 사항에 대한 응답으로 delegate의 메서드를 호출한다. 이러한 방법을 사용하여 사용자가 입력한 텍스트를 확인하고 키보드와의 특정 상호 작용에 응답하며 전체 편집 프로세스를 제어할 수 있다. 텍스트 필드가 첫 번째 응답자(first responder)가 되어 키보드(또는 할당된 input view)를 표시하기 직전에 편집이 시작된다. 편집 프로세스는 다음과 같다

 

  1. first responder가 되기 전에, 텍스트 필드는 delegate의 textFieldShouldBeginEditing(_:) 메서드를 호출한다. 이 메서드를 사용하여 텍스트 필드의 내용 편집을 허용하거나 금지할 수 있다.

  2. 이제 텍스트 필드는 first responder가 된다. 
    이에 따라 시스템은 키보드(또는 해당 텍스트 필드의 input view)를 표시하고 필요에 따라 keyboardWillShowNotificationkeyboardDidShowNotification 알림을 전송한다. 만약 키보드 또는 다른 input view가 이미 보여진 상태라면, 시스템은 keyboardWillChangeFrameNotificationkeyboardDidChangeFrameNotification 알림을 대신 전송한다.

  3. 텍스트 필드는 delegate의 textFieldDidBeginEditing(_:) 메서드를 호출하고 textDidBeginEditingNotification 알림을 전송한다.

  4. 텍스트 필드는 편집 되는 동안 다양한 delegate 메서드를 호출한다:
  5. first responder에서 벗어나기 전에, 텍스트 필드는 delegate의 textFieldShouldEndEditing(_:) 메서드를 호출한다. 이는 현재의 텍스트의 유효성 검사를 위해 사용된다.
  6. 텍스트 필드가 first responder에서 벗어난다.
    이후 시스템은 필요에 따라 키보드를 숨기거나 조정한다. 키보드를 숨길 때, 시스템은 keyboardWillHideNotificationkeyboardDidHideNotification 알림을 전송한다. 

  7. 텍스트 필드는 delegate의 textFieldDidEndEditing(_:) 메서드를 호출하고 textDidEndEditingNotification 알림을 전송한다. 

Reference

- https://developer.apple.com/documentation/uikit/uitextfielddelegate 

 

 

반응형

댓글