工具栏中的 NSPopUpButton 具有类似于 Pages.app UI 的固定图像

NSPopUpButton in a toolbar with fixed image similar to Pages.app UI

Pages(Numbers、Keynote)中的工具栏有一个带有固定图像的 NSPopUpButton(与选择的菜单无关)。使用视图调试,结果发现这是一个带有固定图像的标准 NSPopUpButton。

根据有关 setImage:

的 NSPopUpButton 文档

This method has no effect. The image displayed in a pop up button cell is taken from the selected menu item (in the case of a pop up menu) or from the first menu item (in the case of a pull-down menu).

这意味着此标准 NSPopUpButton 具有非标准行为。

如何实现?因为 setImage: 没有效果,子类化 NSPopUpButtonCell 并覆盖 -drawImage:withFrame:inView: 没有效果(因为它从未被调用)。

这里的问题是混乱:下拉菜单将其菜单的第一个菜单项显示为 image/title

不要使用 -setImage: 在下拉菜单中显示静态图像。而是将菜单的第一个元素设置为您要显示的 image/title,并将选择选项添加为附加菜单项。

@Volker 完全正确。这是内置行为,但您通过设置菜单中的第一个元素而不是使用 setImage:setTitle:.

来设置图像

示例,https://github.com/danieljfarrell/Toolbar-with-Pull-Down-Menu