2011-12-21 3 views
5

Пожалуйста, дайте мне совет, как реализовать такую ​​кнопку раскрытия, как на моем скриншоте - раскрытие «стрелка вниз» Кнопка отображения меню на клик:кнопка раскрытия отображения меню

What do I want

Я пробовал два подход, используя NSPopupButton и NSButton со стилем раскрытия и ручным меню, отображающим:

  • NSPopupButton хранит отображение текста значения по умолчанию и не может быть изменен в интерфейсе Builde r до узкого размера.

    NSPopupButton

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

    - (IBAction)handleShowMenu:(id)sender 
    { 
        [NSMenu popUpContextMenu:profileMenu 
            withEvent:[NSApp currentEvent] 
            forView:sender]; 
    } 
    

    NSButton with menu

Так что это правильный путь, чтобы отобразить такое меню?

ответ

3

Мне это удалось! Правильная настройка заключается в использовании NSPopupButton с «Нет стрелки» и «» Раскрытие информации «Беззольный стиль», Моментный нажим в ».

+0

Нечетный. Я тоже это пробовал, но это привело к появлению кнопки без границ. «Momentary Push In» также привел к тому, что треугольник оказался справа, а не вниз. – omz

+0

Мое решение, очевидно, работает на Lion с XCode 4.2. Какую версию ОС и XCode вы используете? – iHunter

+0

То же самое. Я только что сделал свой первоначальный эксперимент со старой версией IB, потому что считаю это немного более удобным, но я попробовал ваше решение в Xcode 4.2 на Lion. – omz

1

Изменение стиля панели вашего всплывающего окна на «Текстурированное», а стрелка на «Центр» даст вам вид вашего первого снимка экрана. Если вы не хотите, чтобы заголовок выбранного элемента отображался, вам также необходимо установить «Положение» на «только изображение» (белый квадрат).

Редактировать: Я пробовал это в IB 3 и только имитировал интерфейс. Кажется, что стиль «Текстурированный» выглядит по-разному в Xcode 4. «Round Textured» близок, но он не центрирует треугольник горизонтально.

+0

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

+0

Спасибо за помощь, я нашел ответ. – iHunter

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