UITextView

Wongbing·2022년 10월 12일
0

Apple Docs

목록 보기
4/11

UITextView

AppleDocs - UITextView

tags: TIL

A scrollable, multiline text region

스크롤 가능한 , 여러줄의 텍스트 영역

Declaration

@MainActor class UITextView: UIScrollView

Overview

UITextView supports the display of text using custom style information and also supports text editing. You typically use a text view to display multiple lines of text, such as when displaying the body of a large text document.

UITextView는 커스텀스타일 정보를 사용하는 텍스트 표시를 지원하고, 또한 텍스트 수정도 지원합니다.
일반적으로 여러 줄의 텍스트를 보여주기 위해 텍스트 뷰를 사용합니다. 예를들면 많은 텍스트의 문서 내용이 있습니다.

This class supports multiple text styles through use of the attributedText property. (Styled text is not supported in versions of iOS earlier than iOS 6.) Setting a value for this property causes the text view to use the style information provided in the attributed string. You can still use the font, textColor, and textAlignment properties to set style attributes, but those properties apply to all of the text in the text view. It’s recommended that you use a text view—and not a UIWebView object—to display both plain and rich text in your app.

이 클래스는 attributedText 프로퍼티를 사용하여 여러 텍스트 스타일을 지원합니다. (iOS6 미만 버전에서는 Styled text가 지원되지 않습니다) 이 프로퍼티에 값을 설정하면 attributed string에 제공된 스타일정보를 사용합니다. 당신은 여전히 style attribute 설정에 font, textColor, textAlignment 프로퍼티를 사용할 수 있습니다. 그러나 그 프로퍼티들은 textView 안의 모든 text에 적용됩니다. UIWebView 객체가 아닌 텍스트 뷰를 사용하여 앱에 일반 텍스트와 리치 텍스트를 모두 표시하는 것이 좋습니다.

Managing the Keyboard

When the user taps in an editable text view, that text view becomes the ==first responder== and automatically asks the system to display the associated keyboard. Because the appearance of the keyboard has the potential to ==obscure== portions of your user interface, it is up to you to make sure that does not happen ==by repositioning== any views that might be obscured. Some system views, like table views, help you by scrolling the first responder into view automatically. If the first responder is at the bottom of the scrolling region, however, you may still need to resize or reposition the scroll view itself to ensure the first responder is visible.

사용자가 수정 가능한 textView 위를 탭했을 때, 해당 textView는 first responder가 되고, 자동으로 시스템에게 연관 키보드를 요청합니다. 키보드는 사용자 인터페이스를 부분적으로 가릴 가능성이 있기 때문에, 가려질 만한 뷰를 재배치 해서 가리지 않도록 하는 책임은 당신에게 달려 있습니다. 테이블뷰와 같은 몇몇의 시스템 뷰는 first responder를 자동으로 스크롤 해서 볼 수 있도록 도와줍니다. 그러나 만약 first responder가 스크롤 영역의 최하단에 있다면, 당신은 여전히 first responder가 보이도록 스크롤뷰를 resize 또는 reposition 할 필요가 있습니다.

It is your application’s responsibility to dismiss the keyboard at the time of your choosing. You might dismiss the keyboard in response to a specific user action, such as the user tapping a particular button in your user interface. To dismiss the keyboard, send the ==resignFirstResponder()== message to the text view that is currently the first responder. Doing so causes the text view object to end the current editing session (with the delegate object’s consent) and hide the keyboard.

당신이 선택한 시점에 키보드를 dismiss 시키는 것은 application의 책임입니다. 특정 버튼을 누르는 등 지정된 사용자 액션에 키보드를 dismiss 시켜야 할겁니다. 키보드를 dismiss 하기 위해서, 현재 first reponder인 textView 에게 resignFirstResponder() 메세지를 보내세요. 그렇게 하면, 현재 수정세션을 종료하고, 키보드를 숨겨줍니다.

The appearance of the keyboard itself can be customized using the properties provided by the UITextInputTraits protocol. Text view objects implement this protocol and support the properties it defines. You can use these properties to specify the type of keyboard (ASCII, Numbers, URL, Email, and others) to display. You can also configure the basic text entry behavior of the keyboard, such as whether it supports automatic capitalization and correction of the text.

UITextInputTraits 프로토콜로부터 제공되는 프로퍼티들을 사용하여 키보드의 외형을 커스텀할 수 있습니다. 텍스트뷰 객체는 이 프로토콜을 구현하고, 그것이 정의한 프로퍼티를 지원합니다. 당신은 보여줄 키보드 타입(ASCII, Numbers, URL, Email, and other)을 지정하는데에 이 프로퍼티를 사용할 수 있습니다. 또한 키보드의 기본 text entry 동작을 구성할 수 있습니다. 예를들어 자동 대문자를 지원하는 것과 텍스트의 맞춤법 검사가 있습니다.

Keyboard Notifications

When the system shows or hides the keyboard, it posts several keyboard notifications. These notifications contain information about the keyboard, including its size, which you can use for calculations that involve repositioning or resizing views. Registering for these notifications is the only way to get some types of information about the keyboard. The system delivers the following notifications for keyboard-related events:

시스템이 키보드를 보이거나 숨길 때, 몇몇의 키보드 notification을 보냅니다. 이 알림들은 키보드의 정보(뷰를 repositioning 또는 resizing 할때 계산에 쓰는 사이즈 정보) 를 포함합니다. 이 알림을 등록하는 것은 키보드에 대한 정보 유형을 얻는 유일한 방법입니다. 시스템은 아래의 키보드와 연관된 이벤트에 대한 알림을 전달합니다

위 노티피케이션을 이용하여 키보드가 올라가고 내려갈 시점을 얻어서, 그 때 수행해줄 메서드를 addTarget 할 수 있습니다. 또한 키보드의 높이를 구해서 뷰를 재배치할 때 활용할 수 있습니다.

State Preservation

In iOS 6 and later, if you assign a value to this view’s restorationIdentifier property, it preserves the following information:

iOS 6 이후부터, restorationIdentifier 프로퍼티에 값을 할당한다면 다음의 정보들을 유지합니다.

  • The selected range of text, as reported by the selectedRange property.
  • The editing state of the text view, as reported by the isEditable property.
    During the next launch cycle, the view attempts to restore these properties to their saved values. If the selection range cannot be applied to the text in the restored view, no text is selected. For more information about how state preservation and restoration works, see App Programming Guide for iOS.
    For design guidance, see Human Interface Guidelines.
  • selectedRange 프로퍼티로 보고된 선택된 텍스트의 범위
  • isEditable 프로퍼티로 보고된 텍스트뷰의 편집상태
    다음 실행 사이클 동안에, 뷰는 이러한 속성을 저장된 값으로 복원하려고 시도합니다. 복원된 뷰의 텍스트에 선택 범위를 적용할 수 없는 경우, 텍스트가 선택되지 않습니다.
profile
IOS 앱개발 공부

0개의 댓글