1

也许我走错了路,但在我的应用程序中,我有可加载的捆绑包,可将NSMenuItem条目添加到主菜单。

我遍历所有包并确定要添加的菜单项,然后相应地添加它们。

现在的问题是,这样的代码在基于文档的应用程序中应该放在哪里?

最初我把它放在我的 NSDocument 子类的方法中,但这有重复相同项目次数-windowControllerDidLoadNib:的不良副作用,我打开的文档数量在哪里(即它不是放置代码的地方) .nn

所以然后我尝试将代码放在我NSApplicationDelegate-applicationDidFinishLaunching:方法中,这确实意味着它只运行一次,但我面临一个问题,即文档在执行之前(或至少在它完成之前)弹出并显示 -applicationDidFinishLaunching:

通常在哪里放置在启动时将菜单项动态添加到基于文档的应用程序的代码的正确位置?

4

1 回答 1

1

-windowControllerDidLoadNib:为创建/打开的每个文档调用该方法。这是更多的应用程序级别,因此文档不应该担心这一点。

使用-menuNeedsUpdate:委托方法在显示时更新菜单怎么样?这样,您的应用程序可以简单地维护它在启动时创建的列表并保持菜单更新。或者,您可以将它放在您的应用程序委托的-awakeFromNib方法中。

于 2010-11-04T14:35:21.777 回答