2012-06-03 2 views
0

Я пытаюсь сделать свое первое приложение Cocoa (ранее я делал приложения для iOS), и то, что я хочу сделать для своего пользовательского представления, - это заголовок, который можно щелкнуть с помощью индикатора (аксессуар) треугольника, обращенного вниз , Щелчок по названию открывает всплывающее меню с моими элементами.Заголовок NSWindow как индикатор popup button

Как это можно сделать в какао?

ответ

1

Rdelmar's answer, вероятно, самый простой способ пойти, но может не делать именно то, что вы можете захотеть (что заменяет фактический заголовок всплывающим элементом, вместо того, чтобы иметь всплывающее окно под заголовком в области панели инструментов). Что касается функциональности, ваше приложение, вероятно, будет работать так же, как с помощью панели инструментов.

Если вы действительно хотите заменить фактический заголовок, средством для этого было бы установить текст заголовка NSWindow на @"", чтобы скрыть его, и перерисовать его, придерживаясь в вашем собственном представлении.

[[[theWindow contentView] superview] addSubview:theSubview]; 

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

theSubview может быть вашей всплывающей кнопкой, или как вам угодно, и вам также, вероятно, придется настраивать кнопку всплывающего окна в соответствии с исходным рисунком названия окна.

1

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

+0

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

+0

Тогда вам, вероятно, придется пойти с идеей Вервиума. Этот супервизор, к которому он обращается, является NSThemeView - я не знаю, есть ли в нем какая-то «опасность», поскольку это недокументированное представление, которое Apple может изменить, но оно должно работать, чтобы дать вам вид, который вы хотите. – rdelmar

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