TIL
🌱 난 오늘 무엇을 공부했을까?
📌 UITextFieldDelegate - 공식문서
- Text Field 개체의 텍스트 편집 및 유효성 검사를 관리하는 선택적 메서드 집합입니다.
📍 Declaration
@MainActor protocol UITextFieldDelegate
📍 Overview
- Text Field는 중요한 변경 사항에 대한 응답으로 delegate의 메서드를 호출합니다.
- 이러한 방법을 사용하여 사용자가 입력한 텍스트의 유효성을 검사하고, 키보드와의 특정 상호 작용에 응답하고, 전체 편집 프로세스를 제어합니다.
- Text Field가 첫 번째 responder가 되고 키보드(또는 할당된 입력 보기)가 표시되기 직전에 편집이 시작됩니다.
- 편집 프로세스의 흐름은 다음과 같습니다.
-
첫 번째 responder가 되기 전에 Text Field는 delegate의 textFieldShouldBeginEditing(_:)
메서드를 호출합니다. 이 방법을 사용하여 Text Field의 내용 편집을 허용하거나 금지합니다.
-
Text Field가 첫 번째 responder가 됩니다.
- 이에 대한 응답으로 시스템은 키보드(또는 Text Field의 입력 보기)를 표시하고 필요에 따라 keyboardWillShowNotification 및 keyboardDidShowNotification 알림을 게시합니다.
- 키보드 또는 다른 입력 보기가 이미 표시된 경우 시스템은 대신 keyboardWillChangeFrameNotification 및 keyboardDidChangeFrameNotification 알림을 게시합니다.
-
Text Field는 delegate의 textFieldDidBeginEditing(_:)
메서드를 호출하고 textDidBeginEditingNotification 알림을 게시합니다.
-
Text Field는 편집하는 동안 다양한 delegate 메서드를 호출합니다.
- 현재 텍스트가 변경될 때마다
textField(_:shouldChangeCharactersIn:replacementString:)
메서드를 호출하고 textDidChangeNotification 알림을 게시합니다.
- 사용자가 내장 버튼을 탭하여 텍스트를 지울 때
textFieldShouldClear(_:)
메서드를 호출합니다.
- 사용자가 키보드의 리턴 버튼을 탭할 때
textFieldShouldReturn(_:)
메소드를 호출합니다.
-
첫 번째 responder로 사임하기 전에 Text Field는 delegate의 textFieldShouldEndEditing(_:)
메서드를 호출합니다. 이 방법을 사용하여 현재 텍스트의 유효성을 검사하십시오.
-
Text Field가 첫 번째 responder로 사임합니다.
- 이에 대한 응답으로 시스템은 필요에 따라 키보드를 숨기거나 조정합니다. 키보드를 숨길 때 시스템은 keyboardWillHideNotification 및 keyboardDidHideNotification 알림을 게시합니다.
- 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 - 공식문서