【发布时间】:2013-11-24 02:07:46
【问题描述】:
我有一个控制器对象,它拥有一个 NSMenu 并且是该菜单的委托,为了懒惰的人群。
但是,numberOfItemsInMenu: 和 menuNeedsUpdate: 都没有被调用过,所以菜单仍然是空的。
我已经确认:
- 控制器对象尚未被释放。 (反过来,控制器拥有菜单。)
- 它确实有一个菜单。
- 菜单确实有一个委托,那就是控制器。
如果我实现menuWillOpen:,那是调用的,但是you're not supposed to populate the menu there。
我尝试向菜单发送update 消息,但没有效果。代表仍未被调用,菜单仍为空。
如果相关:此菜单不在主菜单中;它在其他地方使用。
为什么菜单不要求其代表填充它?是我遗漏了什么,还是刚刚坏了?
【问题讨论】:
-
你能把你的代码粘贴到这里吗?这样我们也可以尝试一下?
-
@hussainShabbir:不。代码不属于我;我在做一份合同工。 (除此之外,我已经将其更改为不依赖系统调用的那些方法。)
-
我现在遇到了完全相同的问题,您提到
menuWillOpen:为我节省了很多时间。作为记录,menuDidClose:即使设置菜单项的enabled属性也会产生同样的问题。唯一有效的是menuNeedsUpdate:。