如何打开第二个 NSWindow?

How to open second NSWindow?

我试图在单击 NSTableViewCell 时打开第二个 NSWindow。到目前为止,这是我的代码:

func tableView(_ tableView: NSTableView, shouldSelectRow row: Int) -> Bool {
    IndiFlightWC.loadWindow()
    IndiFlightWC.showWindow(nil)
    IndiFlightWC.setMap(indiFlight: FlightList[row]!)
    return true
}

IndiFlightWC 初始化如下:

var IndiFlightWC = IndiFlightWindowController()

我在我的 IndiFlightWindowController 的 windowDidLoad 中放置了一个断点,但它从未到达它。所以我的问题是如何正确显示新的 window?

谢谢!

您的初始化方法几乎可以肯定是不正确的。

如果您查看 documentation for NSWindowController,您会看到其中列出了四种不同的初始化方法。它们都带有参数。

你的IndiFlightWindowController xib 是否包含在你的项目中?为什么不尝试 let indiFlightWC = IndiFlightWindowController(windowNibName: "IndiFlightWindowController") 看看会发生什么。

其他一些提示:

1) 变量名应以小写字母开头。使用 indiFlightWC 而不是 IndiFlightWC 作为变量名。上限应为 [​​=31=].

2) loadWindow isn't needed 因为 showWindow 应该自动调用 loadWindow