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

Dan*_*ell 2 macos cocoa objective-c nspopupbutton

Pages(Numbers,Keynote)中的工具栏具有带有固定图像的NSPopUpButton(与所选菜单无关).使用视图调试,结果证明这是具有固定图像的标准NSPopUpButton.

根据NSPopUpButton文档setImage:,

这种方法没有效果. 弹出按钮单元格中显示的图像是从所选菜单项(在弹出菜单的情况下)或从第一个菜单项(在下拉菜单的情况下)中获取的.

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

怎么能实现呢?因为setImage:没有效果,NSPopUpButtonCell的子类和覆盖-drawImage:withFrame:inView:没有效果(因为它永远不会被调用).

工具栏中的NSPopUpButton

Dan*_*ell 6

这里的问题是混乱:下拉菜单显示菜单的第一个菜单项作为图像/标题.

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

@Volker绝对正确.这是内置行为,但您可以通过设置菜单中的第一个元素而不使用setImage:或来设置图像setTitle:.

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

截图