单击时如何使按钮显示菜单?

时间:2009-05-21 18:18:12

标签: objective-c cocoa

我正在寻找一些代码,以便在单击按钮时使菜单显示在按钮旁边。 我需要什么代码?

很抱歉,如果这听起来有点模糊。

3 个答案:

答案 0 :(得分:4)

为什么不使用NSPopUpButton?

答案 1 :(得分:2)

NSPopupButton也是我的第一个想法。这就是具有“动作装备”按钮的应用程序如何完成其​​菜单。

如果您确实有其他想法,请查看NSMenu的+popUpContextMenu:withEvent:forView:。只需将一个动作方法挂钩到你的按钮,创建一个NSMenu并用NSMenuItems填充它,然后将它从NSApplication的currentEvent getter中的当前事件发送到此方法。

答案 2 :(得分:0)

如果你真的需要自己动手,而不是使用一个显示菜单的内置控件,你可以创建一个NSPopupButtonCell并使用它来显示NSMenu:

NSPopUpButtonCell *popupCell = [[NSPopUpButtonCell alloc] initTextCell:@"" pullsDown:YES];
[popupCell setMenu:yourMenu];
[popupCell trackMouse:event inRect:[yourButton bounds] ofView:yourButton untilMouseUp:YES];
[popupCell release];

您需要根据需要调整pullsDown:,inRect:和ofView:参数,以便按照您想要的方式定位菜单。