UITextFieldDelegate

Panther·2021년 3월 30일
0

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

"A set of optional methods to manage the editing and validation of text in a text field object."

텍스트 필드 객체에서 편집 및 텍스트 유효성을 관리하기 위한 선택적 메소드의 집합입니다.

Declaration

@MainActor protocol UITextFieldDelegate

Overview

텍스트 필드는 변화에 반응할 수 있도록 딜리게이트 메소드들을 호출합니다. 딜리게이트 메소드들을 사용하면 사용자가 입력한 텍스트를 검증하거나 키보드와 상호작용하는 것에 대한 반응이 어떻게 이뤄질지, 전반적인 편집 프로세스를 어떤 방식으로 제어할지를 결정할 수 있습니다. 첫 번째 리스폰더가 되면 글자 입력 및 편집이 시작되고 키보드를 바로 보여줄 수 있습니다. 글자입력 및 편집은 아래 흐름에 따라 진행됩니다.

  1. 첫 번째 리스폰더가 아니라면, 텍스트 필드는 textFieldShouldBeginEditing(_:) 메소드를 호출합니다. 텍스트 필드의 내용을 입력 및 수정을 허용하거나 방지하려면 이 메소드를 사용해야 합니다.
  2. 텍스트 필드가 첫 번째 리스폰더라면, 시스템은 키보드를 보여줄 것이고, keyboardWillShowNotificationkeyboardDidShowNotification을 등록할 것입니다. 키보드나 기타 입력 뷰가 미리 준비되어 보여진다면, 시스템은 위 두 가지 노티피케이션이 아니라 keyboardWillChangeFrameNotificationkeyboardDidChangeFrameNotification을 등록할 것입니다.
  3. 텍스트 필드는 textFieldDidBeginEditing(_:) 메소드를 호출하고 textDidBeginEditingNotification을 등록합니다.
  4. 텍스트 필드는 글자 입력 및 수정이 이뤄지는 동안 다양한 딜리게이트 메소드들을 호출합니다.
    • 텍스트가 변경될 때마다, textField(_:shouldChangeCharactersIn:replacementString:) 메소드를 호출하고 textDidChangeNotification을 등록합니다.
    • 사용자가 텍스트를 모두 비우기 위한 버튼을 누르면 textFieldShouldClear(_:) 메소드를 호출합니다.
    • 사용자가 키보드의 반환 버튼을 누를 때는 textFieldShouldReturn(_:) 메소드를 호출합니다.
  5. 첫 번째 리스폰더로부터 빠져나오기 전, 텍스트 필드는 textFieldShouldEndEditing(_:) 메소드를 호출합니다. 입력한 텍스트를 검증하려면 이 메소드를 사용하면 됩니다.
  6. 텍스트 필드가 첫 번째 리스폰더로부터 빠져나오면 시스템은 키보드를 숨기거나 조절시킵니다. 키보드가 사라질 때, 시스템은 keyboardWillHideNotificationkeyboardDidHideNotification를 등록합니다.
  7. 텍스트 필드는 textFieldDidEndEditing(_:) 메소드를 호출하고 textDidEndEditingNotification을 등록합니다.

텍스트 필드에 관해 더 많은 정보가 필요하다면 아래 링크를 참고하는 것이 좋습니다.

UITextField
https://developer.apple.com/documentation/uikit/uitextfield
https://velog.io/@panther222128/UITextField

0개의 댓글