UITextFieldDelegate, UITextViewDelegate

Groot·2022년 8월 24일
0

TIL

목록 보기
47/153
post-thumbnail

TIL

🌱 난 오늘 무엇을 공부했을까?

📌 UITextFieldDelegate - 공식문서

  • Text Field 개체의 텍스트 편집 및 유효성 검사를 관리하는 선택적 메서드 집합입니다.

📍 Declaration

@MainActor protocol UITextFieldDelegate

📍 Overview

  • Text Field는 중요한 변경 사항에 대한 응답으로 delegate의 메서드를 호출합니다.
  • 이러한 방법을 사용하여 사용자가 입력한 텍스트의 유효성을 검사하고, 키보드와의 특정 상호 작용에 응답하고, 전체 편집 프로세스를 제어합니다.
  • Text Field가 첫 번째 responder가 되고 키보드(또는 할당된 입력 보기)가 표시되기 직전에 편집이 시작됩니다.
  • 편집 프로세스의 흐름은 다음과 같습니다.
  1. 첫 번째 responder가 되기 전에 Text Field는 delegate의 textFieldShouldBeginEditing(_:) 메서드를 호출합니다. 이 방법을 사용하여 Text Field의 내용 편집을 허용하거나 금지합니다.

  2. Text Field가 첫 번째 responder가 됩니다.

    • 이에 대한 응답으로 시스템은 키보드(또는 Text Field의 입력 보기)를 표시하고 필요에 따라 keyboardWillShowNotification 및 keyboardDidShowNotification 알림을 게시합니다.
    • 키보드 또는 다른 입력 보기가 이미 표시된 경우 시스템은 대신 keyboardWillChangeFrameNotification 및 keyboardDidChangeFrameNotification 알림을 게시합니다.
  1. Text Field는 delegate의 textFieldDidBeginEditing(_:) 메서드를 호출하고 textDidBeginEditingNotification 알림을 게시합니다.

  2. Text Field는 편집하는 동안 다양한 delegate 메서드를 호출합니다.

    • 현재 텍스트가 변경될 때마다 textField(_:shouldChangeCharactersIn:replacementString:) 메서드를 호출하고 textDidChangeNotification 알림을 게시합니다.
    • 사용자가 내장 버튼을 탭하여 텍스트를 지울 때 textFieldShouldClear(_:) 메서드를 호출합니다.
    • 사용자가 키보드의 리턴 버튼을 탭할 때 textFieldShouldReturn(_:) 메소드를 호출합니다.
  3. 첫 번째 responder로 사임하기 전에 Text Field는 delegate의 textFieldShouldEndEditing(_:) 메서드를 호출합니다. 이 방법을 사용하여 현재 텍스트의 유효성을 검사하십시오.

  4. Text Field가 첫 번째 responder로 사임합니다.

    • 이에 대한 응답으로 시스템은 필요에 따라 키보드를 숨기거나 조정합니다. 키보드를 숨길 때 시스템은 keyboardWillHideNotification 및 keyboardDidHideNotification 알림을 게시합니다.
  1. Text Field는 delegate의 textFieldDidEndEditing(_:) 메서드를 호출하고 textDidEndEditingNotification 알림을 게시합니다.

📍 Topics

🔗 Managing Editing

func textFieldShouldBeginEditing(UITextField) -> Bool
  • 지정된 Text Field에서 편집을 시작할지 여부를 delegate에게 묻습니다.
func textFieldDidBeginEditing(UITextField)
  • 지정된 Text Field에서 편집이 시작될 때 delegate에게 알립니다.
func textFieldShouldEndEditing(UITextField) -> Bool
  • 지정된 Text Field에서 편집을 중지할지 여부를 대리인에게 묻습니다.
func textFieldDidEndEditing(UITextField, reason: UITextField.DidEndEditingReason)
  • 지정된 Text Field에 대한 편집이 중지되는 시점과 중지된 이유를 delegate에게 알려줍니다.
func textFieldDidEndEditing(UITextField)
  • 지정된 Text Field에 대해 편집이 중지될 때 delegate에게 알립니다.
enum UITextField.DidEndEditingReason
  • Text Field에서 편집을 종료하는 이유를 나타내는 상수입니다.

🔗 Editing the Text Field’s Text

func textField(UITextField, shouldChangeCharactersIn: NSRange, replacementString: String) -> Bool
  • 지정된 텍스트를 변경할지 여부를 delegate에게 묻습니다.
func textFieldShouldClear(UITextField) -> Bool
  • Text Field의 현재 내용을 제거할지 여부를 delegate에게 묻습니다.
func textFieldShouldReturn(UITextField) -> Bool
  • delegate에게 Text Field에 대한 Return 버튼 누름을 처리할지 여부를 묻습니다.

🔗 Managing Text Selection

func textFieldDidChangeSelection(UITextField)
  • 지정된 Text Field에서 텍스트 선택이 변경되면 delegate에게 알립니다.

UITextFieldDelegate - 공식문서


📌 UITextViewDelegate - 공식문서

  • TextView에 대한 편집 관련 메시지를 수신하는 방법입니다.

📍 Declaration

@MainActor protocol UITextViewDelegate

📍 Overview

  • 이 프로토콜의 모든 방법은 선택 사항입니다.
  • 사용자가 편집 중인 텍스트를 조정하려는 경우(예: 맞춤법 검사 프로그램의 경우) 또는 의도한 삽입 지점을 수정하려는 경우에 사용할 수 있습니다.

📍 Topics

🔗 Responding to Editing Notifications

func textViewShouldBeginEditing(UITextView) -> Bool
  • 지정된 Text View에서 편집을 시작할지 여부를 delegate에게 묻습니다.
func textViewDidBeginEditing(UITextView)
  • 지정된 Text View의 편집이 시작될 때 delegate에게 알립니다.
func textViewShouldEndEditing(UITextView) -> Bool
  • 지정된 Text View에서 편집을 중지할지 여부를 delegate에게 묻습니다.
func textViewDidEndEditing(UITextView)
  • 지정된 Text View의 편집이 종료되면 delegate에게 알립니다.

🔗 Responding to Text Changes

func textView(UITextView, shouldChangeTextIn: NSRange, replacementText: String) -> Bool
  • Text View에서 지정된 텍스트를 바꿀지 여부를 delegate에게 묻습니다.
func textViewDidChange(UITextView)
  • 사용자가 지정된 Text View에서 텍스트 또는 속성을 변경할 때 delegate에게 알립니다.

🔗 Responding to Selection Changes

func textViewDidChangeSelection(UITextView)
  • 지정된 Text View에서 텍스트 선택이 변경될 때 delegate에게 알립니다.

🔗 Interacting with Text Data

func textView(UITextView, shouldInteractWith: NSTextAttachment, in: NSRange, interaction: UITextItemInteraction) -> Bool
  • 지정된 Text View가 지정된 텍스트 범위에서 제공된 텍스트 첨부 파일과 지정된 유형의 사용자 상호 작용을 허용하는지 여부를 delegate에게 묻습니다.
func textView(UITextView, shouldInteractWith: URL, in: NSRange, interaction: UITextItemInteraction) -> Bool
  • 지정된 Text View가 지정된 텍스트 범위에서 지정된 URL과 지정된 유형의 사용자 상호 작용을 허용하는지 여부를 delegate에게 묻습니다.

UITextViewDelegate - 공식문서

profile
I Am Groot

0개의 댓글