UIInputViewController

Panther·2021년 8월 13일
0

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

"The primary view controller for a custom keyboard app extension."

커스텀 키보드 앱 확장을 위한 주요 뷰 컨트롤러입니다.

Declaration

@MainActor class UIInputViewController : UIViewController

Overview

커스텀 키보드를 생성하려면 우선 UIInputViewController 클래스를 서브클래싱한 뒤, 서브클래스의 inputView 속성에 키보드의 UI를 추가해야 합니다. Xcode에서 Custom Keyboard 타깃 템플릿을 선택해서 커스텀 키보드를 시작할 수 있습니다.

커스텀 키보드는 아래 방법으로 사용자 입력 이벤트에 응답할 수 있습니다.

  • textDocumentProxy 속성에 insertText(_:) 메소드를 호출해서, 현재 텍스트 입력 객체에 대한 입력 지점에 unattributed NSString 객체 형식으로 텍스트를 추가합니다. 이 속성은 UIKeyInput 프로토콜에 따르는 것을 통해 해당 메소드를 제공합니다.
  • 뒤에서부터 텍스트를 삭제합니다. 입력 지점에서 시작하며, textDocumentProxy 속성에 deleteBackward() 메소드를 호출함으로써 수행합니다.
  • advanceToNextInputMode() 메소드를 호출해서 사용자가 활성화한 다른 키보드로 변경합니다.
  • dismissKeyboard() 메소드를 호출해서 키보드를 해제합니다.

textDocumentProxy 속성인 documentContextBeforeInputdocumentContextAfterInput을 읽음으로써 입력 지점 주변에 텍스트의 컨텍스트를 가져옵니다. 현재 텍스트 입력 객체가 비어있는지 확인하려면, textDocumentProxy 속성에 hasText 메소드를 호출해야 합니다. 키보드로부터 문서에 컨텍스트에 민감한 출력을 제공하기 위해, 사용자 입력을 신경쓰면서 텍스트의 컨텍스트를 사용할 수 있습니다.

입력 뷰 컨트롤러는 UITextInputDelegate 프로토콜을 따름으로써 문서 컨텐트 및 입력 지점 위치에 응답할 수 있도록 해줍니다.

적합한 키보드 레이아웃을 제공하려면 현재 텍스트 입력 객체의 UIKeyboardType 속성에 응답해야 합니다. 지원하는 각 키보드 타입 특성에 맞추려면, 그에 맞게 주요 뷰의 컨텐츠를 변경시켜야 합니다.

커스텀 키보드 생성에 대한 더 많은 내용은 App Extension Programming Guide의 Custom Keyboard를 읽으시기 바랍니다.

Custom Keyboard
https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/CustomKeyboard.html#//apple_ref/doc/uid/TP40014214-CH16

See Also


Custom Keyboard

UILexicon

각각의 렉시컨 엔트리 객체에 있는 용어 쌍의 읽기 전용 배열이며, 커스텀 키보드를 위한 것입니다.

https://developer.apple.com/documentation/uikit/uilexicon
https://velog.io/@panther222128/UILexicon

UILexiconEntry

렉시컨 객체 내에서 사용 가능한 읽기 전용 용어 쌍이며, 커스텀 키보드를 위한 것입니다.

https://developer.apple.com/documentation/uikit/uilexiconentry
https://velog.io/@panther222128/UILexiconEntry


0개의 댓글