Setting Up a Document Browser App

Panther·2021년 8월 12일
0

https://developer.apple.com/documentation/uikit/view_controllers/adding_a_document_browser_to_your_app/setting_up_a_document_browser_app

"Add a document browser view controller to your app."

앱에 문서 브라우저 뷰 컨트롤러를 추가합니다.

Overview

문서 브라우저를 설정하는 것은 세 가지 단계가 필요합니다.

  1. 앱의 루트 뷰 컨트롤러로써 브라우저를 설정합니다.
  2. 앱에서 문서 브라우저 지원을 선언합니다.
  3. 문서 브라우저가 열 수 있는 문서의 타입을 정의합니다.

세 가지 단계 모두를 가장 간단하게 구현할 수 있는 방법은 Document Based App 템플릿을 사용해 새 프로젝트를 생성하는 것입니다.

Create a New Document-Based App

새로운 문서 기반 앱을 생성하려면, Xcode를 열고 File > New> Project 순으로 선택합니다. 템플릿 선택기에서 애플리케이션 아래에 문서 기반 앱 템플릿을 선택합니다. 그리고 다음을 클릭합니다.

문서 기반 프로젝트를 생성하기 위해 다음 프로프트를 계속해야 합니다. 새 프로젝트에서 아래 아이템들이 나타납니다.

  • Main.storyboard는 초기 뷰 컨트롤러로써 문서 브라우저 뷰 컨트롤러를 포함합니다. 이 스토리보드는 앱의 루트 뷰 컨트롤러로 문서 브라우저를 설정합니다. 이를 통해 브라우저가 앱의 생명주기 동안 메모리에 남는 것을 보장해줍니다.
  • 앱의 Info.plist 파일에서 앱이 문서 브라우저를 지원하는 것을 선언하도록 UISupportsDocumentBrowser 키가 YES로 설정됩니다. 구체적으로 이 키는 앱의 문서 디렉토리에 저장된 파일을 다른 앱이 열고 편집할 수 있도록 해줍니다. 또한, 사용자가 설정에서 앱의 기본 저장 위치를 설정할 수 있도록 해줍니다. 더 많은 정보는 UISupportsDocumentBrowser를 살펴보시기 바랍니다.
  • 앱은 앱이 public.image 문서 타입을 지원한다고 선언합니다. 그러면 사용자는 문서 브라우저에서 이미지 파일을 선택할 수 있고, 다른 앱과 이미지 파일을 공유할 수 있습니다.

UISupportsDocumentBrowser
https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW37

대부분의 경우 기본값을 그대로 사용하시기 바랍니다. 그러나 이미지 기반 앱을 만드는 것이 아닌 한, 아마도 지원하는 문서 타입을 업데이트 해야 할 필요가 있을 것입니다.

Set the Supported Document Types

앱이 지원하는 문서 타입 각각에 대해 프로젝트 편집기의 Info 창에서 아래 단계를 수행하시기 따라가시기 바랍니다.

  1. Document Types 디스클로저 삼각형을 클릭하고, 추가 버튼을 클릭해 새 문서 타입을 추가하거나 기존 문서 타입을 엽니다.
  2. 문서 타입의 이름을 설정하고, 유니폼 타입 아이덴티파이어(UTI)를 설정합니다.
  3. "Additional document type properties" 디스클로저 삼각형을 클릭합니다.
  4. LSHandlerRank 키를 추가하고, 값을 Owner 혹은 Alternate로 설정합니다.
  5. 선택사항으로, 다른 문서 타입 속성을 설정합니다.

예를 들어 텍스트 파일을 편집하는 앱의 경우 아래 이미지에서 보여주는 설정을 사용하시기 바랍니다.

이 엔트리 집합은 앱의 Info.plist 파일에서 CFBundleDocumentTypes 키를 설정합니다.

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFiles</key>
        <array/>
        <key>CFBundleTypeName</key>
        <string>Text</string>
        <key>LSHandlerRank</key>
        <string>Alternate</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>public.plain-text</string>
        </array>
    </dict>
</array>

더 많은 정보는 Set supported document types를 살펴보시기 바랍니다.

Set supported document types
https://help.apple.com/xcode/mac/current/#/devddd273fdd

0개의 댓글