Добавление вспомогательного представления к панели сохранения NSDocument в дополнение к его собственной всплывающей кнопке типа файла - PullRequest
4 голосов
/ 11 мая 2011

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

Теперь у меня есть еще один вид, который я хотел бы включить в панель сохранения, но если я просто переопределю -[NSDocument prepareSavePanel:] и использую -setAccessoryView:, чтобы вставить свой собственный вид, он заменитвсплывающая кнопка типа файла, поэтому на панели сохранения отображается только мое представление, а не всплывающая кнопка.

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

1 Ответ

4 голосов
/ 11 мая 2011

Нет, не намного лучший способ.Может быть немного проще / приятнее:

  1. Создать всплывающее окно с типом файла в вашем собственном дополнительном представлении. Nib
  2. Во время выполнения найдите существующий NSSavePanel.Вспомогательное всплывающее окно,
  3. Вызовите setTarget: / setAction: / setMenu: в вашем всплывающем окне с аргументами, извлеченными из того, как установлено существующее всплывающее окно.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...