Я работаю над приложением, которое поддерживает очень сложный набор операций. Это похоже на нечто вроде Xcode, поскольку основной документ представлен чем-то вроде окна проекта с многочисленными записями в нем. Документ на диске представляет собой набор (это означает каталог с файлом).Как реализовать сложное приложение на основе NSDocument, которое импортирует и экспортирует не-родные типы файлов?
Существует, по крайней мере, один тип файла, который он может импортировать и экспортировать (.mfst), но он не предназначен для прямого редактирования этого типа файла. То есть, открытие этого типа файла приводит к созданию собственного типа документа и содержимого импортируемого в него файла. На диске файл представляет собой набор ( .mproj) с многочисленными файлами, содержащимися в нем.
Технически этот файл скопирован дословно в соответствующее место внутри собственного пакета документов. Любые изменения в данных, содержащихся в этом файле, сохраняются в копии в комплекте, а не в копии, которая была импортирована.
Этот тип файла также может быть экспортирован.
Вопрос 1: Является ли это приложение средством просмотра импортированного типа или редактора? Я думаю, что это первый.
Вопрос 2:This question на поддержку импортируемых видов показывает, как реализовать импорт с помощью подкласса NSDocument, но мне кажется, что, возможно, подклассов NSDocumentController хороший путь.
Одна из причин этого заключается в том, что если пользователь уже импортировал файл .mfst, я хочу поймать этот факт. Существуют и другие файлы, которые могут быть связаны с открытым документом, и должны импортировать в этот документ, а не создавать новый.
Вопрос 3: К сожалению, некоторые из кода для работы над проектом требуют наличия определенных файлов на диске. Это означает, что даже когда новый документ создается в ответ на открытие типа импортируемого файла, мне нужно продолжить и создать пакет на диске и скопировать файл там, чтобы он мог работать. Я хотел бы поддерживать иллюзию к пользователю, что это безымянный, несохраненный документ. Это возможно?
Я понимаю, что это противоречит «современному» понятию Apple о документах, которые не нужно сохранять. Возможно, было бы лучше всего, чтобы все операции были автоматически сохранены. Я знаю, что мне никогда не нравилось, что я не могу явно сохранить документ. Я на самом деле не уверен, что рекомендуемый пользовательский интерфейс в эти дни (Apple, похоже, изменила курс на этом).
Рекомендации приветствуются.
Да, я слежу за этим, спасибо. И да, я уже использую поддержку NSFileWrapper (ранние этапы). Итак, несмотря на то, что приложение экспортирует тип файла, оно все еще является средством просмотра только? – Rick
Замечательно, что вы уже нашли ссылку на архитектуру документации. Я продлил ответ. Объявлять типы экспортируемых файлов в разделе 'UTExportedTypeDeclarations' вашего' Info.plist 'вашего приложения. –