显示菜单的披露按钮

时间:2011-12-21 12:28:00

标签: objective-c macos appkit nsbutton nsmenu

请告诉我如何在我的屏幕截图中实现这种披露按钮 - 显示“点击下拉”按钮,显示点击菜单:

What do I want

我尝试了两种方法,使用NSPopupButtonNSButton显示披露风格和手动菜单:

  • NSPopupButton一直显示默认值文本,无法在Interface Builder中调整为较小的大小。

    NSPopupButton

  • NSButton显示一个菜单,但显然是错位到我点击按钮的位置,而不是底边。我正在使用以下代码:

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

    NSButton with menu

那么显示这样一个菜单的正确方法是什么?

2 个答案:

答案 0 :(得分:4)

我已经成功了!正确的设置是使用NSPopupButton和“无箭头”和“ Disclosure ”边框样式,“瞬间推入”类型

答案 1 :(得分:1)

将弹出按钮的边框样式更改为“纹理”并将箭头更改为“中心”将为您显示第一个屏幕截图。如果您不想显示所选项目的标题,则还需要将“位置”设置为“仅图像”(白色方块)。

编辑:我在IB 3中尝试了这个并且只模拟了界面。似乎“纹理”样式在Xcode 4中看起来不同。“圆形纹理”很接近,但它不会使三角形水平居中。