我想要一个带有附加下拉菜单的工具栏按钮,例如Mail.app工具栏中的“Flag”按钮:
我希望制作一个普通的NSMenuItem
并添加一个菜单作为menuFormRepresentation
就可以了,但只有当按钮进入溢出模式时才会出现该菜单。
我还希望添加NSPopupButton
作为自定义视图可以正常工作,但这会使整个视图成为菜单,而我希望组件的左侧部分表现得像普通按钮,右边下拉部分显示菜单。
是否有一些技巧让NSToolbarItem显示这样的组件,或者这两个自定义视图是否粘在一起?
答案 0 :(得分:4)
这里没有关于NSToolbar
的神奇之处。这只是您设置NSSegmentedControl
的方法之一,无论它是显示为工具栏项目的自定义视图还是单独显示。
您无法在Interface Builder(故事板)中进行设置,但NSSegmentedControl
具有用于为菜单分配菜单的API:
segmentControl.setMenu(myMenu, forSegment: 1)
segmentControl.setShowsMenuIndicator(true, forSegment: 1) // for the little arrow
您可能希望将跟踪模式设置为momentary
,因为您的分段控件充当一组可视连接的按钮,而不是选择一个N选择器。
当用户点击任一细分时,您的操作方法需要使用selectedSegment
来决定是否执行与“按钮”相关联的操作或忽略点击(让菜单显示为对方)。