"Customize the document browser’s look and behavior."
문서 브라우저의 모양 및 동작을 커스터마이징합니다.
브라우저의 모양을 설정할 수 있고, 문서 썸네일을 생성할 수 있으며, 브라우저의 동작을 수정할 수 있습니다.
browserUserInterfaceStyle
속성을 설정해서 브라우저의 모양을 변경할 수 있습니다. 문서 브라우저 뷰 컨트롤러는 화이트, 라이트, 다크 모양을 지원합니다.
시스템은 지원되는 문서 타입에 대한 썸네일 혹은 아이콘을 자동으로 제공합니다. 만약 앱이 커스텀 혹은 써드파티 문서 타입을 사용하고 있다면, 해당 타입에 대한 썸네일 확장을 생성할 수 있습니다. 더 많은 정보는 QLThumbnailProvider를 살펴보시기 바랍니다.
QLThumbnailProvider
https://developer.apple.com/documentation/quicklookthumbnailing/qlthumbnailprovider
https://velog.io/@panther222128/QLThumbnailProvider
썸네일 확장을 제공하지 않으면, 시스템은 앱 아이콘에 기반해서 문서 아이콘을 생성합니다. 자동 아이콘 생성을 활성화하려면 프로젝트 네비게이터에 가서 타깃을 선택하고 Info를 클릭한 후 아래처럼 하시기 바랍니다.
더 많은 정보는 Set the Supported Document Types를 살펴보시기 바랍니다.
Set the Supported Document Types
https://developer.apple.com/documentation/uikit/view_controllers/adding_a_document_browser_to_your_app/setting_up_a_document_browser_app#2904048
https://velog.io/@panther222128/Setting-Up-a-Document-Browser-App
앱의 아이콘은 아래 내용이 모두 true
일 떄 파일 앱 혹은 문서 브라우저에서만 나타납니다.
시스템은 지원되는 문서 타입을 위한 프리뷰를 자동으로 제공합니다. 앱이 커스텀 혹은 써드파티 문서 타입을 사용하고 있다면, 해당 타입을 위한 프리뷰 확장을 생성할 수 있습니다.
더 많은 정보는 Quick Look을 살펴보시기 바랍니다.
Quick Look
https://developer.apple.com/documentation/quartz/quick_look
https://velog.io/@panther222128/Quick-Look
아래 동작을 제어할 수 있습니다.
브라우저 생성 시 허용된 문서 타입의 리스트를 설정할 수 있습니다. UIDocumentBrowserViewController
클래스의 init(forOpeningFilesWithContentTypes:)
메소드에 UTI 스트링 배열을 전달합니다. nil
을 전달하면 브라우저는 앱의 Info.plist 파일에 있는 CFBundleDocumentTypes
키에 구체화된 문서 타입을 사용합니다.
CFBundleDocumentTypes
키 설정에 대한 더 자세한 설명은 Set the Supported Document Types를 살펴보시기 바랍니다.
Set the Supported Document Types
https://developer.apple.com/documentation/uikit/view_controllers/adding_a_document_browser_to_your_app/setting_up_a_document_browser_app#2904048
https://velog.io/@panther222128/Setting-Up-a-Document-Browser-App
아래 예시는 .txt 파일을 위한 문서 브라우저 생성을 코드 작성으로 하는 예시입니다.
let browser = UIDocumentBrowserViewController(forOpeningFilesWithContentTypes: ["public.plain-text"])
기본값으로 사용자는 한 번에 한 아이템만 선택할 수 있습니다. 여러 문서 선택을 가능하게 하려면 문서 브라우저의 allowsPickingMultipleItems
속성을 true
로 설정하시기 바랍니다.
사용자가 새 문서를 생성할 수 있게 하려면 아래 내용을 수행해야 합니다.
allowsDocumentCreation
속성을 true
(기본값)로 설정합니다.UIDocumentBrowserViewControllerDelegate
객체의 documentBrowser(_:didRequestDocumentCreationWithHandler:)
메소드를 구현합니다.이 단계를 완료한 후 시스템은 자동으로 문서 브라우저의 네비게이션 바에 추가 버튼을 포함시킵니다.
사용자가 추가 버튼을 누르면 시스템은 documentBrowser(_:didRequestDocumentCreationWithHandler:)
메소드를 호출합니다. 구현한 내용에서 사용자가 문서를 설정할 수 있는 커스텀 UI를 제공할 수 있습니다. 문서 템플릿의 리스트를 보여주는 것이 하나의 예입니다.
새 문서를 생성하고 이 문서를 임시 위치에 저장할 수 있습니다. 문서가 저장되자마자 제공되는 importHandler
를 호출합니다. 요청을 승인하려면 문서의 임시 URL을 전달하고 모드(UIDocumentBrowserViewController.ImportMode.copy
,UIDocumentBrowserViewController.ImportMode.move
)를 임포트합니다. 요청을 취소하려면 nil
을 전달하고 UIDocumentBrowserViewController.ImportMode.none
을 임포트합니다.
Important
항상importHandler
를 호출해야 합니다. 새 문서를 생성할 수 없다면, URL에서nil
을 전달하고 임포트 모드에서UIDocumentBrowserViewController.ImportMode.none
을 전달합니다.
커스텀 문서 브라우저 액션, 활동, 바 아이템을 추가합니다.
https://developer.apple.com/documentation/uikit/view_controllers/adding_a_document_browser_to_your_app/adding_custom_actions_and_activities
https://velog.io/@panther222128/Adding-Custom-Actions-and-Activities