此方法的文档说:“弹出指定位置的菜单。”但是,这些参数似乎描述了不同的情况:
item
The menu item to be positioned at the specified location in the view.
location
The location in the view coordinate system to display the menu item.
view
The view to display the menu item over.
参数似乎暗示您只会弹出一个MenuItem。这种方法实际上做了什么?
答案 0 :(得分:3)
我不知道你怎么会弹出一个菜单项 - 甚至没有弹出菜单项这样的东西。在参数描述中没有任何地方说它不会显示弹出菜单。参数描述都提到了项目,因为它们都与其定位有关。它的工作原理如下。
答案 1 :(得分:3)
为方便起见,您可以设置单个菜单项的坐标。您的菜单将相应地定位在该单个菜单项周围。
您会注意到这就是NSPopUpButton的行为:所选菜单项总是直接位于按钮上方。
如果您不希望菜单表现如此,只需传入最顶层的菜单项。
答案 2 :(得分:2)
您忘记了一些事情:这是您发送给菜单对象的消息。
在英文中,信息是:
“嘿菜单!弹出自己,将此项目放在相对于此视图的此位置。“
参数描述了整个弹出菜单应该出现在哪里,从特定位置的菜单中定位特定项目。整个菜单显示为弹出菜单,而不仅仅是定位项目。只弹出一个项目就没用了。
另一件事:这种方便的方法是在Snow Leopard中引入的,所以如果你的目标是Leopard或更早,你就不能依赖它。您将不得不使用其他解决方案,例如我在您之前的一个问题的答案中建议的NSPopUpButtonCell。