Методы переопределения для загрузки нескольких файлов для NSDocument
У меня есть подкласс nsdocument, который обрабатывает загрузку двоичного файла (существующего формата, а не моего создания.) Формат файла использует 3 файла с одинаковым именем для каждого логического "документа" (с разными расширениями).
Я хочу, чтобы пользователь мог выбрать 3 файла в NSOpenPanel, а затем создать один подкласс NSDocument с соответствующим окном. Я знаю, как настроить панель для разрешения выбора нескольких файлов, но я не знаю, как добраться до панели, которую использует NSDocumentController, или какие методы переопределить для загрузки двоичных данных из нескольких файлов.
1 ответ
Полагаться на то, что пользователь сделает что-то особенное и правильное, чтобы обойти собственные ограничения вашего приложения, обязательно не получится. Что бы вы ни сказали пользователю, они будут делать это, противоположность этому, и все, что ортогонально этому.
Я бы объявил каждый из трех типов в моем списке и направил их всех в один и тот же класс документа. Документ будет считан из всех трех файлов независимо от того, с каким он был создан, и выдаст ошибку, если какой-либо из них будет отсутствовать. Вам, вероятно, следует назначить один из трех основных файлов документа, задав fileURL
на URL к этому файлу.
Позаботьтесь о правильной реализации координации файлов (вы должны быть докладчиком для всех трех файлов и координировать любые попытки записи в любой из них). Вы будете подвергать пользователей риску повреждения или потери данных, если вы этого не сделаете.
Вы не должны пытаться связываться с открытой панелью вообще. Панель "Открыть" - не единственный способ открыть документы в приложении на основе документов. Вещи, которые вам нужно делать, вы должны делать за своим GUI, а не внутри него.
Если ваше приложение помещено в "песочницу", это будет сложно или невозможно. В этом вам могут помочь закладки URL с защитой.