Как иметь несколько значков прокси в окнах документа Какао?

Большинство приложений какао, если они вызывают NSWindow"s -setRepresentedFilename:, будет отображать симпатичный маленький значок прокси в верхнем центре их NSWindows.

Вот пример приложения Preview с документом PDF:

значок прокси для файла PDF

Xcode каким-то образом удается отобразить 2 прокси-иконки - один для файла проекта, а другой для текущего документа на исходном дисплее.

xcode имеет 2 прокси иконки для двух документов

Кто-нибудь знает, как они это делают? window:shouldPopUpDocumentPathMenu: в NSWindowDelegate кажется очень близким - вы могли бы расположить свои пользовательские пути меню с этим. Но, похоже, нет ничего, что позволило бы вам отображать две иконки прокси.

Есть идеи?

1 ответ

Решение

К сожалению, у Apple есть доступ к API, а у остальных нет. Возиться со строкой заголовка действительно сложно.

Лучшее, что я могу предложить, это сделать ваше окно НЕ имеющим стандартную строку заголовка, а затем расположить кнопки самостоятельно, вызвав [self standardWindowButton:X] для каждой из нужных вам кнопок закрытия, изменения размера и миниатюризации. Затем разместите свой собственный значок документа и заголовок textField.

Скорее всего, вам придется отслеживать, когда окно теряет или набирает статус ключа или основного элемента, и соответствующим образом изменять кнопки (Какао выбирает новые кнопки каждый раз, когда это происходит, не знаю, почему). Whee! Удачи!

Другие вопросы по тегам