此方法的文档说明:“在指定位置弹出菜单。”但参数似乎描述了一种不同的情况:
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。这个方法实际上是做什么的?
发布于 2009-12-17 12:00:56
您忘记了一件事:这是您发送给menu对象的消息。
在英语中,信息是:
“嘿,菜单!弹出您自己,将此项目定位在相对于此视图的此位置。“
根据将菜单中的特定项目定位在特定位置的角度,这些参数描述了整个弹出式菜单应该出现的位置。整个菜单显示为弹出式菜单,而不仅仅是定位项目。只弹出一个项目是没有用的。
还有一件事:这个方便的方法是在Snow Leopard中引入的,所以如果你的目标是Leopard或更早的版本,你不能依赖它。您必须使用另一种解决方案,例如我在回答您之前的一个问题时提出的NSPopUpButtonCell。
发布于 2009-12-17 09:44:45
我不知道你怎么知道它可能只是弹出一个菜单项--甚至没有弹出菜单项这样的东西。在参数描述中没有说明它不会显示弹出菜单。参数描述都提到了该项目,因为它们都与其定位相关。它的工作方式如文档所示。
发布于 2009-12-17 11:16:23
为方便起见,您可以设置单个菜单项的坐标。您的菜单将相应地放置在该单个菜单项的周围。
您会注意到,NSPopUpButton的行为是这样的:选定的菜单项始终位于按钮的正上方。
如果你不希望你的菜单是这样的,只要传入你最顶层的菜单项即可。
https://stackoverflow.com/questions/1918913
复制相似问题