工具栏、触控栏和菜单无法识别从 AppDelegate 启动窗口

问题描述

我正在尝试从 AppDelegate 以编程方式启动一个窗口,特别是从服务提供者,它工作但不是很好,因为工具栏不起作用,触摸栏不显示,我添加自定义菜单项是禁用。 Apple 提供的菜单菜单项有效。

我所有的视图都是在故事板上创建的。认主窗口不是从 AppDelegate 启动的。

我像这样启动窗口。

guard let windowController = nsstoryboard.main?.instantiateController(withIdentifier: .windowController) as? WindowController else { return }

windowController.window?.title = data.title
windowController.viewController?.property = data
windowController.showWindow(self)

但是,如果我通过 segue 启动,它可以完美运行。

guard let splitViewController = NSApp.mainWindow?.contentViewController as? NssplitViewController,let viewController = splitViewController.splitViewItems[1].viewController as? ViewController else { return }

viewController.anotherViewController.performSegue(withIdentifier: .segue,sender: data)

那么,我为什么不这样做呢?因为它在主窗口中工作,然后该程序启动窗口阻止该代码再次工作。仅当只有一个窗口时才有效。

我希望它每次都能正常工作。主窗口是关键窗口还是后续的其他非主窗口都没有关系。

如何确保我可以启动一个窗口并且它也被工具栏、触摸栏和自定义菜单项识别,并且只有主窗口或其他不是主窗口的窗口也没关系主窗口,但不同类型的窗口。

解决方法

我误解了 from numpy import ndarray def addimg(image: ndarray) -> None: ... 属性,当它真正指向聚焦窗口时,我认为它指的是实际的主窗口。所以,我真正想要的主窗口是 mainWindow 数组中的第一个窗口。

windows

菜单项、工具栏和触控栏正在工作并响应用户交互。