То, что я хочу реализовать
Я ищу способ отображения метки заголовка и метки подробного текста в NSMenuItem
. Желательно, чтобы это выглядело примерно так:
- Метка заголовка выровнена по левому краю со всеми другими заголовками
NSMenuItem
- Подробности Текстовая метка выровнена по правому краю
- Текстовая метка детализации имеет цвет текста, отличный от заголовка
- Выделение / Подменю et c. работать как положено
Что я уже пробовал
Читая документацию, я нашел следующие возможные реализации:
- Создайте пользовательский
NSView
и установите NSMenuItem.view
- Используйте значение по умолчанию
NSMenuItem
и используйте NSAttributedString
Сначала я попытался использовать пользовательский NSView
, Однако я не смог правильно настроить размер NSMenuItem
, чтобы отобразить весь доступный текст. Я думаю, некоторые маски с автоматическим изменением размера не работают правильно, но я не уверен. Также таким образом мне нужно было бы повторно реализовать выделение / стрелку для подменю, ...
Затем я начал экспериментировать с NSAttributedString
. Я вычисляю заголовок с наибольшим количеством символов, а затем дополняю строку title += string.padding(toLength: maxTitleLength, withPad: " ", startingAt: 0)
. NSAttributedString
по-разному окрашивает заголовок и метку детализации. Однако, похоже, это не сработает, поскольку метки сведений не выровнены правильно, хотя заголовок дополняется до той же длины. Я думаю, это имеет смысл, поскольку символы имеют разную ширину?
TL; DR - Вопрос
Так есть ли другой способ реализовать желаемый дизайн, который я не нашла? У вас есть какой-нибудь совет для меня, как это реализовать?