我有一个NSPopUpButton为具有自定义视图的状态项提供NSMenu。弹出按钮显示链接列表。当用户从列表中选择一个链接时,链接显示在用户的浏览器中(在后台)。如何在用户选择菜单项后保持NSPopUpButton打开?
当然,每当用户选择链接时,菜单都会关闭。
我想改变这个:我想菜单保持打开,而用户点击各种链接,所有这些都可以在后台打开。当用户点击其他地方时,菜单可以消失。
这是如何实现的?我应该子类化NSMenuItem并以某种方式拦截鼠标点击?在弹出的菜单上覆盖一个透明的NSView,并再次拦截点击?我很乐意提出这些建议,但是我会在实现这些任何一个时遇到困难......指向正确的覆盖方法的指针将不胜感激。
感谢您的评论。我当然会考虑编写我自己的NSView的子类。然而,它可以解释所有的子菜单,图像,开/关状态等,这些都是免费的NSPopUpButtonCell/NSMenu组合。 所以...我可以理解,编写我自己的NSView是一种方法,但我坦白地认为,如果我完全模仿NSPopUpButton,但只是改变我想改变的行为 - 那么我可能还会继续和“弯曲[控制]太远了它的原意”!我的意思是,结果是一样的,所以站在仪式上似乎毫无意义。 – Dennis 2009-06-16 04:41:08