TIL
🌱 난 오늘 무엇을 공부했을까?
📍 Declaration
@MainActor class UITextView : UIScrollView
📍 Overview
- UITextView는 사용자 정의 스타일 정보를 사용한 텍스트 표시를 지원하고 텍스트 편집도 지원합니다.
- 일반적으로 텍스트 뷰를 사용하여 큰 텍스트 문서의 본문을 표시할 때와 같이 여러 줄의 텍스트를 표시합니다.
- 이 클래스는 attributeText 속성을 사용하여 여러 텍스트 스타일을 지원합니다.
- (스타일이 지정된 텍스트는 iOS 6 이전의 iOS 버전에서는 지원되지 않습니다.) 이 속성에 대한 값을 설정하면 텍스트 뷰가 특성 문자열에 제공된 스타일 정보를 사용합니다.
- 여전히 font, textColor 및 textAlignment 속성을 사용하여 스타일 속성을 설정할 수 있지만 이러한 속성은 텍스트 뷰의 모든 텍스트에 적용됩니다.
- UIWebView 개체가 아닌 텍스트 뷰를 사용하여 앱에 일반 텍스트와 서식 있는 텍스트를 모두 표시하는 것이 좋습니다.
📍 Managing the Keyboard
- 사용자가 편집 가능한 텍스트 뷰를 탭하면 해당 텍스트 뷰가 첫 번째 응답자가 되어 시스템에 연결된 키보드를 표시하도록 자동으로 요청합니다.
- 키보드의 모양은 사용자 인터페이스의 일부를 가릴 가능성이 있으므로 가릴 수 있는 보기의 위치를 변경하여 이러한 일이 발생하지 않도록 하는 것은 사용자에게 달려 있습니다.
- 테이블 보기와 같은 일부 시스템 보기는 첫 번째 응답자를 보기로 자동 스크롤하여 도움이 됩니다.
- 그러나 첫 번째 응답자가 스크롤 영역의 맨 아래에 있는 경우 첫 번째 응답자가 표시되도록 스크롤 보기 자체의 크기를 조정하거나 위치를 변경해야 할 수도 있습니다.
- 선택한 시간에 키보드를 닫는 것은 응용 프로그램의 책임입니다.
- 사용자가 사용자 인터페이스의 특정 버튼을 탭하는 것과 같은 특정 사용자 작업에 대한 응답으로 키보드를 닫을 수 있습니다.
- 키보드를 닫으려면 현재 첫 번째 응답자인 텍스트 뷰에 resumeFirstResponder() 메시지를 보냅니다.
- 그렇게 하면 텍스트 뷰 개체가 현재 편집 세션(대리자 개체의 동의 하에)을 종료하고 키보드를 숨깁니다.
- 키보드 자체의 모양은 UITextInputTraits 프로토콜에서 제공하는 속성을 사용하여 사용자 지정할 수 있습니다.
- 텍스트 뷰 개체는 이 프로토콜을 구현하고 정의된 속성을 지원합니다.
- 이러한 속성을 사용하여 표시할 키보드 유형(ASCII, 숫자, URL, 이메일 등)을 지정할 수 있습니다.
- 자동 대문자 및 텍스트 수정 지원 여부와 같은 키보드의 기본 텍스트 입력 동작을 구성할 수도 있습니다.
📍 Keyboard Notifications
- 시스템이 키보드를 표시하거나 숨길 때 여러 키보드 알림을 게시합니다.
- 이러한 알림에는 크기를 포함하여 키보드에 대한 정보가 포함되어 있어 보기 위치 변경 또는 크기 조정과 관련된 계산에 사용할 수 있습니다.
- 이러한 알림에 등록하는 것은 키보드에 대한 일부 유형의 정보를 얻을 수 있는 유일한 방법입니다.
- 시스템은 키보드 관련 이벤트에 대해 다음과 같은 알림을 전달합니다.
- keyboardWillShowNotification
- keyboardDidShowNotification
- keyboardWillHideNotification
- keyboardDidHideNotification
📍 State Preservation
- iOS 6 이상에서 이 보기의 restoreIdentifier 속성에 값을 할당하면 다음 정보가 유지됩니다.
- selectedRange 속성에 의해 보고된 선택된 텍스트 범위입니다.
- isEditable 속성에 의해 보고된 텍스트 뷰의 편집 상태입니다.
- 다음 시작 주기 동안 보기는 이러한 속성을 저장된 값으로 복원하려고 시도합니다.
- 복원된 보기의 텍스트에 선택 범위를 적용할 수 없으면 텍스트가 선택되지 않습니다.
- 상태 보존 및 복원 작동 방식에 대한 자세한 내용은 iOS용 앱 프로그래밍 가이드를 참조하세요.
- 디자인 지침은 휴먼 인터페이스 지침을 참조하십시오.