代码之家  ›  专栏  ›  技术社区  ›  d11wtq Vadim Baryshev

applicationIDfinishLaunching:从NIB加载NSDocument后执行

  •  1
  • d11wtq Vadim Baryshev  · 技术社区  · 14 年前

    也许我的做法不对,但在我的应用程序中,我有可加载的bundle,可以添加 NSMenuItem 进入主菜单。

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

    最初我把它放在我的NSDocument子类中 -windowControllerDidLoadNib: 方法,但这有重复相同项目的不希望的副作用 n n个 是我打开的文档数(即,不是放代码的运行位置)。

    NSApplicationDelegate -applicationDidFinishLaunching: 方法,这意味着它只运行一次,但我面临一个问题,即文档会弹出并显示 之前 -应用程序IDfinishLaunching:

    一般来说,在启动时将菜单项动态添加到基于文档的应用程序的代码放在哪里是正确的?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Roland Keesom    12 年前

    这个 -windowControllerDidLoadNib:

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