如何打开第二个 NSWindow?
Posted
技术标签:
【中文标题】如何打开第二个 NSWindow?【英文标题】:How to open second NSWindow? 【发布时间】:2019-02-25 17:24:13 【问题描述】:我试图在单击 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 中放置了一个断点,但它永远不会到达它。所以我的问题是如何正确显示新窗口?
谢谢!
【问题讨论】:
【参考方案1】:您的 init 方法几乎可以肯定是不正确的。
如果您查看documentation for NSWindowController,您会看到其中列出了四种不同的初始化方法。它们都带参数。
您的IndiFlightWindowController
xib 是否包含在您的项目中?为什么不试试let indiFlightWC = IndiFlightWindowController(windowNibName: "IndiFlightWindowController")
看看会发生什么。
其他几个提示:
1) 变量名应以小写字母开头。使用indiFlightWC
而不是IndiFlightWC
作为变量名。大写应该用于类。
2) loadWindow
isn't needed 因为showWindow
应该自动调用loadWindow
。
【讨论】:
以上是关于如何打开第二个 NSWindow?的主要内容,如果未能解决你的问题,请参考以下文章
打开第二个窗口后隐藏主窗口?另外,当第二个窗口被用户关闭时,主窗口如何重新出现?