我正在尝试制作一个弹出按钮,该按钮始终显示+作为其图像,当您单击它时,会弹出一个上下文菜单,允许您决定要添加的对象类型。有没有使用NSPopupButton来做到这一点?我在nspopupbutotn的规范中看到,方法SetImage没有效果,所以看起来这很可能不会使用此类工作。这是正确的吗?

有帮助吗?

解决方案

是的,可见的外观 NSPopUpButton 你想要的是错的。

你想要的是一个普通的 NSButton 附有菜单。在界面生成器中清除标题,将边框设置为正方形,将位置设置为中心图标-只有版本,将图像设置为 NSAddTemplate.

然后创建一个 NSPopUpButton, ,将其设置为"下拉",隐藏,并将其对齐/将其大小设置为NSButton的底部。

最后,连接 performClick:NSButtonperformClick:NSPopUpButton.

这不会处理一个点击按住按钮;为此,您必须编写一些代码来使用(非绘图) NSPopUpButtonCell.

其他提示

为什么不只使用NSPopupButton?使用2个按钮执行一项任务似乎并不正确,而且如上所述,就按住按钮而言,它的行为不正常。

要使弹出按钮按您的喜好工作,请将其设置为下拉类型。不要给弹出按钮本身任何名称或图像。如果弹出按钮没有名称或图像,则第一个菜单项将成为按钮的标题。菜单项可以包含图像,因此不要给第一个菜单项任何标题,只需将其设置为图像,这就是您将在弹出按钮上看到的图像。对于其余菜单项,只需在第一个菜单项之后照常添加即可。请注意,如果您以编程方式更改代码中的菜单项,只需确保将第一个菜单项保持原样,一切都将正常。我在几个应用程序中都做到了这一点。

关键是使用NSPopUpButtonCell'ssetUsesItemFromMenu :。Apple文档包含一个如何使用它的示例。

弹出按钮获取与之关联的菜单中第一个菜单项的图像和标题。因此最好将要在弹出按钮中显示的图像作为第一个菜单项,然后隐藏其可见性。

如果您不清楚,那么请看以下视频一次,它一定会让您理解。

本教程显示如何在Interface Builder中使用NSToolbar的下拉菜单创建工具栏项(NSToolbarItem): 链接

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top