Cocoa 未调用NSMenu委托来填充它

Cocoa 未调用NSMenu委托来填充它,cocoa,nsmenu,Cocoa,Nsmenu,我有一个控制器对象,它拥有一个NSMenu,并且是该菜单的委托,这是为了懒人群体的利益 但是,无论是numberOfItemsInMenu:还是menuedsupdate:都不会被调用,因此菜单仍然为空 我已证实: 控制器对象尚未解除分配。(反过来,控制器拥有菜单。) 它有菜单 菜单确实有一个委托,那就是控制器 如果我实现menuWillOpen:,则称为but 我试着向菜单发送一条更新消息,但没有效果。代理仍然未被调用,菜单仍然为空 如果相关:此菜单不在主菜单中;它在其他地方使用 为什么菜

我有一个控制器对象,它拥有一个NSMenu,并且是该菜单的委托,这是为了懒人群体的利益

但是,无论是
numberOfItemsInMenu:
还是
menuedsupdate:
都不会被调用,因此菜单仍然为空

我已证实:

  • 控制器对象尚未解除分配。(反过来,控制器拥有菜单。)
  • 它有菜单
  • 菜单确实有一个委托,那就是控制器
如果我实现
menuWillOpen:
,则称为but

我试着向菜单发送一条
更新
消息,但没有效果。代理仍然未被调用,菜单仍然为空

如果相关:此菜单不在主菜单中;它在其他地方使用


为什么菜单不要求其代表填充它?是否有我遗漏的东西,或者这东西刚刚坏掉了?

也许你需要一份对代表的有力证明。 尝试将变量声明移出方法,并生成类级成员变量。
看看这个答案:

你能把代码粘贴到这里吗。所以我们也会尝试一下吗?@hussainShabbir:没有。代码不属于我;我在做合同工。(除此之外,我已经将其更改为不依赖系统调用的那些方法。)我现在遇到了完全相同的问题,您提到的
menuWillOpen:
节省了我很多时间。对于记录,
menuDidClose:
甚至在设置菜单项的
enabled
属性时也会出现同样的问题。唯一有效的是
menuedsupdate:
。您错过了问题的这一部分:“我已确认:•控制器对象尚未解除分配。”您是否有过视图设置菜单:?如果是-菜单变量在哪里减速?在我的例子中,控制器也未解除分配,但ARC已使对我的委托的引用无效。我所指的控制器对象是菜单的委托及其所有者。