Переопределение списка возможных форматов экспорта в NSSaveDialog - PullRequest
2 голосов
/ 28 февраля 2012

У меня есть приложение, которое может загружать сторонний код.Одна из возможностей, которую может выполнять сторонний код, - это добавление форматов, в которые приложение может экспортировать.Я использую saveDocumentTo: в качестве средства для реализации экспорта.

Я понимаю, что могу настроить меню доступных типов файлов для сохранения через переопределение writableTypesForSaveOperation: для моего документа, но что не работает, так это то, что вв диалоговом окне сохранения соответствующее расширение файла не добавляется к имени файла при выборе из меню.

Я попытался переопределить fileNameExtensionForType:saveOperation:, но это даже не вызывается.

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

1 Ответ

3 голосов
/ 28 февраля 2012

Я сделал это в пользовательском представлении экспорта для панели сохранения. Настраиваемое представление вспомогательного экспорта просто изменяет разрешенные типы файлов NSSavePanel, когда пользователь изменяет формат, в который он хочет экспортировать.

Если вы хотите установить расширение, передайте массив с одним элементом, содержащим это расширение.

Документы содержат некоторые важные детали поведения -[NSSavePanel setAllowedFileTypes:] в этом отношении, для поддержки более сложных случаев:

Обсуждение

Тип файла может быть общим расширением файла или UTI. Нулевое значение указывает, что может использоваться любой тип файла. Значением по умолчанию является ноль.

Если расширение не задано пользователем, первый элемент в allowFileTypes будет использоваться в качестве расширения для панели сохранения. Если пользователь указывает тип, отсутствующий в массиве, и позволяет параметруOtherFileTypes задано значение ДА, ему будет предложено другое диалоговое окно, когда будет предложено сохранить.

NSOpenPanel: в версиях Mac OS X ниже v10.6 это свойство игнорируется. Для приложений, которые ссылаются на версию 10.6 и выше, это свойство определяет, какие файлы должны быть включены на открытой панели. Использование устаревших методов для отображения открытой панели (которые принимают тип: параметр) перезапишет это значение и не должно использоваться. Разрешенные типы файлов могут быть изменены во время работы панели (например, из вспомогательного представления). Тип файла может быть общим расширением файла или UTI. Это также известно как «разрешенные типы файлов». Нулевое значение указывает, что все файлы должны быть включены.

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

...