Добавить изображение или набор значков в каталог активов для использования с NSToolbarItem

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

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

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

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

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

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


person Oleg Korzhukov    schedule 02.04.2019    source источник
comment
Олег, ты когда-нибудь находил на это ответ? У меня точно такой же вопрос: как добавить отдельные ассеты для 24x24 1x / 2x светлых / темных версий, а также 32x32 1 / x / 2x светлых / темных версий. Конечно - я всегда могу добавить ОТДЕЛЬНЫЕ ресурсы. Но как NSToolbarItem знает, что нужно заглядывать в отдельные активы?   -  person SMGreenfield    schedule 02.04.2020
comment
SMGreenfield, я думаю, где нет простого ответа на это. Я решил отключить стандартный размер (32x32 и 64x64) на своих панелях инструментов и ограничить их только маленьким размером.   -  person Oleg Korzhukov    schedule 02.04.2020
comment
После работы с разработчиками Apple я обнаружил, что он работает ИДЕАЛЬНО, обеспечивая единственное изображение размером 128 x 128 пикселей (по одному для светлого и темного режима). Я беспокоился о масштабировании, но я внимательно посмотрел на него, и он кажется очень точным для файлов .png, которые мы используем. Теперь, если бы я только мог получить возможность работать с NSToolbarItem, функция позволяетDuplicatesInToolbar ‹g› ...   -  person SMGreenfield    schedule 05.04.2020


Ответы (2)


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

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

imageScaling = .scaleProportionallyDown

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

person Ron    schedule 08.04.2019
comment
1. Было бы неплохо получить цитату из документации Apple о размере изображения на панели инструментов. Спасибо. 2. Ваше быстрое и грязное решение не соответствует моим идеальным потребностям в пикселях. Спасибо. - person Oleg Korzhukov; 09.04.2019

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

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

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

person Albert Renshaw    schedule 09.04.2019
comment
Это здорово, что вы дали официальные ссылки! У вас есть идеи, как поместить все эти изображения в активы под одним и тем же именем? - person Oleg Korzhukov; 09.04.2019