我正在开发一个仅包含菜单栏图标的macOS应用程序。
我有一个带有菜单的xib文件(MenuBarMenu.xib),以及一个将其放在菜单栏中的相应控制器(MenuBarMenuController.swift)。
我想手动或通过Swinject在此控制器中注入依赖项。
因此,我认为我可以通过编程方式从AppDelegate加载xib文件:
func applicationDidFinishLaunching(_ aNotification: Notification) {
let controller = MenuBarMenuController(nibName: "MenuBarMenu", bundle: nil)
controller.someDependency = Test()
}
但是看起来控制器在到达applicationDidFinishLaunching之前已被NSApplication自动实例化。
我尝试过的事情:
如果xib文件存在,则在AppDelegate之前调用它。当我删除它时,没有运行时错误。
我的问题是:如何在此控制器中注入依赖项?
答案 0 :(得分:0)
虽然我没有弄清楚如何在特定情况下注入依赖关系,但是我可以通过使用故事板而不是xib文件来解决该依赖关系。 然后借助SwinjectStoryboard我可以进行注射。