Cocoa 未调用NSMenu委托来填充它
我有一个控制器对象,它拥有一个NSMenu,并且是该菜单的委托,这是为了懒人群体的利益 但是,无论是Cocoa 未调用NSMenu委托来填充它,cocoa,nsmenu,Cocoa,Nsmenu,我有一个控制器对象,它拥有一个NSMenu,并且是该菜单的委托,这是为了懒人群体的利益 但是,无论是numberOfItemsInMenu:还是menuedsupdate:都不会被调用,因此菜单仍然为空 我已证实: 控制器对象尚未解除分配。(反过来,控制器拥有菜单。) 它有菜单 菜单确实有一个委托,那就是控制器 如果我实现menuWillOpen:,则称为but 我试着向菜单发送一条更新消息,但没有效果。代理仍然未被调用,菜单仍然为空 如果相关:此菜单不在主菜单中;它在其他地方使用 为什么菜
numberOfItemsInMenu:
还是menuedsupdate:
都不会被调用,因此菜单仍然为空
我已证实:
- 控制器对象尚未解除分配。(反过来,控制器拥有菜单。)
- 它有菜单
- 菜单确实有一个委托,那就是控制器
menuWillOpen:
,则称为but
我试着向菜单发送一条更新
消息,但没有效果。代理仍然未被调用,菜单仍然为空
如果相关:此菜单不在主菜单中;它在其他地方使用
为什么菜单不要求其代表填充它?是否有我遗漏的东西,或者这东西刚刚坏掉了?也许你需要一份对代表的有力证明。 尝试将变量声明移出方法,并生成类级成员变量。
看看这个答案:你能把代码粘贴到这里吗。所以我们也会尝试一下吗?@hussainShabbir:没有。代码不属于我;我在做合同工。(除此之外,我已经将其更改为不依赖系统调用的那些方法。)我现在遇到了完全相同的问题,您提到的
menuWillOpen:
节省了我很多时间。对于记录,menuDidClose:
甚至在设置菜单项的enabled
属性时也会出现同样的问题。唯一有效的是menuedsupdate:
。您错过了问题的这一部分:“我已确认:•控制器对象尚未解除分配。”您是否有过视图设置菜单:?如果是-菜单变量在哪里减速?在我的例子中,控制器也未解除分配,但ARC已使对我的委托的引用无效。我所指的控制器对象是菜单的委托及其所有者。