2010-01-23 3 views
2

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

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

Есть ли простой и простой способ сделать это, используя привязки? Должен ли я писать пользовательскую ячейку?

ответ

6

Невозможно связать изображения, а также названия пунктов меню с использованием запаса NSPopUpButton. Вам придется подклассифицировать его и написать IBPlugin, чтобы открыть подкласс. И, конечно же, вы должны обращаться с камерой.

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

+0

Я мог бы добавить, что я нашел хороший код примера, который по крайней мере дает мне ячейку ... http://developer.apple.com/mac/library/samplecode/SourceView/index.html Существует класс ImageAndTextCell внутри. –

+0

Да, но это не поможет вам с NSPopUpButton, для которого требуется NSPopUpButtonCell. Другой вид ячейки не будет знать, как отображать и отслеживать меню. Не существует способа назначить вторую ячейку для задания объектов содержимого, поскольку это задание пунктов меню. –

0

NSMenuItem имеет привязку к изображению (в разделе «Параметры» waaaaaayyyyy down). Поэтому я думаю, что вы должны привязать это значение к пути в вашем массиве запущенных приложений. Вы можете получить значок для своего приложения, используя общий объект NSWorkspace.

+2

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

 Смежные вопросы

  • Нет связанных вопросов^_^