Какао: всплывающие кнопки форматирования шрифта
Я смотрю на пример приложения, которое включает в себя редактирование текста. У него есть несколько кнопок форматирования шрифтов:
Я не могу найти, где в коде они устанавливаются, что заставляет меня думать, что они каким-то образом встроены. Например, кнопка всплывающего шрифта перечисляет все шрифты и имеет самые последние использованные шрифты вверху.
Я не смог понять, как этого добиться, прибегая к помощи Google. Как создаются такие виды кнопок шрифтов?
РЕДАКТИРОВАТЬ: Чтобы уточнить... моя настоящая цель заключается в создании приложения, которое имеет компонент для редактирования текста. Я хочу, чтобы он имел кнопки форматирования текста, как это. Так что мне не очень интересно, как это было сделано в этом конкретном случае; скорее я хочу знать, каков принятый метод для достижения этой цели.
РЕДАКТИРОВАТЬ 2: Вот что я говорю с кнопкой шрифта. Кажется, это происходит волшебным образом:
РЕДАКТИРОВАТЬ 3: вот еще одна интересная вещь. Он включил изображения для кнопок в проект (например, жирный значок и курсив), но, насколько я могу судить, эти изображения никогда не используются. Как будто он нашел какой-то другой способ сделать это.
РЕДАКТИРОВАТЬ 4: Ну, теперь я понял, что я вижу панель инспектора NSTextView. Может ли кто-нибудь помочь с позиционированием?
2 ответа
Оказывается, здесь мы видим панель инспектора NSTextView. Используя NSToolbar, мы смогли расположить его так, как мы этого хотели.
Помимо внешнего вида, в котором используется какая-то нестандартная, темная схема, недоступная для стандартных элементов управления Какао, это все стандартные элементы управления OS X, которые вы можете просто настроить самостоятельно.
Что касается темной внешности..
Apple начала добавлять что-то вроде стилизованных элементов управления с NSAppearance
класс, представленный в Mavericks, однако из текущей документации он пока не делает много (10.9).
Однако существует довольно много сторонних элементов управления, которые имитируют элементы управления, найденные в приложениях Apple Pro или iLife. Примерами являются GPProKit или SNRHUDKit (среди многих других).