如何以编程方式在Swift 4中显示用于macOS应用程序的窗口/视图控制器

时间:2017-12-03 04:16:29

标签: swift xcode macos

我试图以编程方式在我的macOS应用程序中显示一个窗口。我想以编程方式执行此操作的原因是因为用户单击“登录”按钮,结果函数取决于登录的成功。如果成功,则显示窗口;否则,它不是。

以下是我的Xcode窗口的屏幕截图:

xcode window screenshot

以下是我在代码中尝试的内容(course = prof.course_set.all()是我创建的一个类,可以更轻松地显示Alert对话框):

NSAlert

Apple {{}}的文档几乎不存在,我见过的其他方法似乎与早期版本的Swift有关。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

好吧,所以这不是我原本想要做的,但这种方式要好得多,而且我真的在寻找。

let vcStores = self.storyboard?.instantiateController(withIdentifier: NSStoryboard.SceneIdentifier("vcStores"))
        as! NSViewController
self.view.window?.contentViewController = vcStores

这将只是用Interface Builder中定义的视图vcStores中的内容替换窗口的内容。

This video也有帮助,尽管对于iOS和Swift 3.我一开始就尝试创建一个新的NSWindow,因为我已经习惯于在Java Swing或C#Windows Forms中进行桌面开发。但我喜欢像这样切换窗口内容是多么容易。