Каков приемлемый способ реализации функции экспорта в приложении Какао на основе документов? - PullRequest
3 голосов
/ 21 апреля 2009

У меня есть простое основанное на документе приложение Какао, которое действует как средство просмотра для файлов .wav, чтобы сделать небольшой анализ частоты. Я хотел бы иметь возможность экспортировать данные, полученные из открытых файлов, в файлы CSV для дальнейшего анализа в других программах.

Каркас приложения на основе документов в Какао позволяет переопределять

- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError

для реализации стандартного рабочего процесса Сохранить / Сохранить как ..., но я не хочу записывать открываемые файлы.

Очевидная вещь, которую нужно сделать, это реализовать в моем документе рабочий процесс экспорта, чтобы представить лист сохранения файла, построить некоторые NSData и записать их в путь к файлу, но не существует очевидного способа подключить розетку в MainMenu. перо к действию на контроллере документа.

Итак, каков приемлемый способ реализации такой функциональности в приложении Какао на основе документов?

1 Ответ

3 голосов
/ 21 апреля 2009

Вы можете создать новое действие в объекте «First Responder» MainMenu.nib с именем «export:» и подключиться к нему. Затем внедрите метод export: в свой подкласс документа. Это вызовет ваш метод.

Причина, по которой это работает, заключается в том, что сообщения, отправляемые на магический объект первого респондента, проходят через всю цепочку респондента в поисках некоторого объекта, который их обрабатывает. Одним из элементов в этой цепочке респондента является документ, и поэтому, когда текущий выбранный элемент управления, представление, суперпредставление, окно и т. Д., Все не обрабатывают сообщение, документ получает шанс. (Контроллер документов также находится в этой цепочке, так что вы также можете использовать его.)

Взгляните на Документация Apple по цепочке ответчиков - рисунок 1.10 охватывает этот конкретный путь.

...