我试着用鼠标在按钮上显示弹出式菜单。该按钮应显示按下鼠标,并被“不按”鼠标向上,无论任何菜单项被选中。类似于公开/空间首选项面板"+“按钮,用于添加应用程序。
到目前为止,我尝试了3种方法:
当单击按钮时,
的行为
有什么建议吗?我想方法2或3是正确的方式,只需要“不按”鼠标上的按钮。
发布于 2010-09-06 22:20:20
正如Peter提到的,您可以使用NSPopUpButton。不明显的是,您可以像配置NSButton一样配置按钮的样式、图像、标题等。
发布于 2013-03-07 11:05:06
一根很旧的线。但这是我最近面临的问题,所以如果允许我做贡献.
在我的例子中,使用NSPopupButton不是一种选择。因为NSPopupButton创建了我不需要的自己的NSMenu (我不知道如何让它消失)。
我找到了另一条路。可以更改默认的NSButton行为而不对其进行子类划分。只需使用NSControl类的NSControl方法(在-awakeFromNib中的某个位置):
[_myButton sendActionOn:NSEventMaskLeftMouseDown];现在,按钮中的操作将在mouseDown事件上发送。希望这能有所帮助。
发布于 2018-01-23 21:26:43
Swift“语法”
myButton.sendAction(on: .leftMouseDown)另一种选择是:
子类NSButton:
class ButtonDown: NSButton {
override func awakeFromNib() {
super.awakeFromNib()
self.sendAction(on: .leftMouseDown)
}
}https://stackoverflow.com/questions/3651767
复制相似问题