Добавить изображение или набор значков в каталог ресурсов для использования с NSToolbarItem - PullRequest
2 голосов
/ 02 апреля 2019

У меня есть набор идеальных по пикселям иконок, которые я хочу использовать на панели инструментов (NSToolbar) моего приложения. Панель инструментов настраивается, поэтому мне нужно предоставить значки четырех размеров: маленький, стандартный, маленький @ 2x, стандартный @ 2x. Я не смог найти никакой официальной информации о размере этих значков, но неофициальная информация (подтвержденная моими тестами) следующая: маленький 24px, нормальный 32px.

Таким образом, мне нужно добавить четыре разных изображения: 24x24px, 32x32px, 48x48px, 64x64px в мой набор изображений.

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

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

У кого-нибудь есть для этого хорошее решение?

И да, я очищаю папку сборки перед каждым тестом.

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

NSToolbar.sizeModes - enum: маленький и обычный. Малый - 24х24, обычный - 32х32; кроме того, параметры сетчатки позволяют использовать @ 2x (48x48 и 64x64) и, возможно, @ 3x в будущем.

Документацию Apple по этим размерам можно найти здесь и здесь

Убедитесь, что вы используете enum Regular, а не "Standard", что недокументировано.

0 голосов
/ 08 апреля 2019

Информацию о форматах и ​​размерах см. В руководстве по интерфейсу пользователя на сайте Apple Developer.Требования для разных устройств разные и довольно подробные.

Для быстрого и грязного решения, если вы не готовы к отправке и просто хотите получить красивую графику для тестирования, я обнаружил, что один 512 x512 pdf с надписью "image @ 2x" работает довольно хорошо.Вам нужно установить

imageScaling = .scaleProportionallyDown

, а остальное позаботится Cocoa.Но он точно не готов к прайм-тайм.

...