我正在尝试制作一个弹出按钮,该按钮始终显示 + 作为其图像,当您单击它时,会弹出一个上下文菜单,允许您决定要添加的对象类型。有没有使用 NSPopupButton 来做到这一点?我在 NSPopupButotn 的规范中看到方法 SetImage 没有效果,所以使用这个类似乎这可能不起作用。它是否正确?
4 回答
为什么不直接使用 NSPopupButton?使用 2 个按钮来执行一项任务似乎并不正确,而且如上所述,它在按住按钮时的行为并不正常。
要使弹出按钮按您喜欢的方式工作...将其设置为下拉类型。不要给弹出按钮本身任何名称或图像。如果弹出按钮没有名称或图像,则第一个菜单项将成为按钮的标题。菜单项可以有图像,所以不要给第一个菜单项任何标题,只需设置它的图像,这就是您将在弹出按钮上看到的图像。对于其余的菜单项,只需在第一个菜单项之后照常添加它们即可。请注意,如果您以编程方式更改代码中的菜单项,只需确保保留第一个菜单项,一切都会好起来的。我在我的一些应用程序中这样做没有问题。
关键是使用NSPopUpButtonCell's
setUsesItemFromMenu
:。Apple 文档包含一个如何使用它的示例。
NSPopUpButton
是的,你想要的外观是错误的。
你想要的是一个NSButton
附有菜单的常客。在 Interface Builder 中清除标题,将 Bezel 设置为 Square,将 Position 设置为仅中心图标版本,将图像设置为NSAddTemplate
.
然后创建一个NSPopUpButton
,将其设置为“下拉”,隐藏,并将其对齐/将其大小设置为 NSButton 的底部。
最后,performClick:
在NSButton
toperformClick:
上连接NSPopUpButton
。
这不会处理按钮上的单击保持;为此,您必须编写一些代码才能使用 (non-drawing) NSPopUpButtonCell
。
弹出按钮采用与其关联的菜单中第一个菜单项的图像和标题。因此,最好将您希望在弹出按钮中显示的图像包含为第一个菜单项,然后隐藏其可见性。
如果你还不清楚,那就把下面的视频看一遍,一定会让你明白的。
本教程展示了如何在 Interface Builder 中使用 NSToolbar 的下拉菜单创建工具栏项 (NSToolbarItem): 链接