在使用情节提要和 swift 时从 xib 打开 NSWindow

Posted

技术标签:

【中文标题】在使用情节提要和 swift 时从 xib 打开 NSWindow【英文标题】:Open NSWindow from xib while using storyboards and swift 【发布时间】:2016-05-04 15:21:23 【问题描述】:

我正在使用故事板和 swift。 现在我正在尝试打开一个新的 NSWindow ,它包含在一个 xib 文件中。 (我创建了一个包含 NSWindow 的新 xib 文件)

我已将以下代码添加到我的项目中,但它没有打开任何窗口。

let controller = NSWindowController(windowNibName: "xibFile")
controller.showWindow(self)

我确定我做错了什么

print(controller.window?.title)

也不会给我来自 xib 文件的正确窗口标题。

希望任何人都可以提示我做错了什么。谢谢!

【问题讨论】:

你的 xib 窗口有自定义类还是只有 NSWindowController?你在哪里触发controller.showWindow(self)?是在 AppDelegate 里面吗? 【参考方案1】:

在你的第二个笔尖:

class SecondNibController: NSWindowController 
    override var windowNibName: String? 
        return "SecondNib" // no extension .xib here
    

记得将SecondNibConntrollerwindow插座连接到您的窗口。

在您的主故事板中:

class ViewController: NSViewController 
    let secondNibController = SecondNibController()

    @IBAction func openSecondWindow(sender : AnyObject) 
        secondNibController.showWindow(nil)
    

【讨论】:

以上是关于在使用情节提要和 swift 时从 xib 打开 NSWindow的主要内容,如果未能解决你的问题,请参考以下文章

使用 Swift 3 Xcode 8 加载时缺少自定义 XIB

我在 xib(加载 xib)的帮助下创建了项目,现在我想在特定的按钮选项卡中添加情节提要并打开情节提要

如何使用 swift 在情节提要中从一个视图控制器移动到另一个视图控制器 [重复]

在情节提要中调用 xib

XIB 到情节提要

为啥 XCode 4 在使用情节提要时不创建 XIB 文件?