我制作了一个非常简单的带有两个窗口的mac应用程序。我是一名iOS开发人员,因此我对swift非常熟悉,但在构建OS X应用程序时,iOS应用程序中的一些UI元素无法很好地转换。我想利用屏幕顶部的菜单栏。我想在默认情况下单击文件下的“新建”并打开我初始VC的新窗口。我怎么做?
我已经阅读了很多帖子,他们告诉我要建立一个新的菜单栏,但我觉得应该有一个更简单的方法,默认情况下菜单栏。即使我设法创建插座或为新按钮添加操作,我该如何调用特定的VC?我可以像在iOS中一样实例化VC吗?我只想要最简单的方法来做到这一点。
这是我用来呈现新窗口的内容:
let storyboard = NSStoryboard(name: NSStoryboard.Name(rawValue: "Main"), bundle: nil)
let myWindowController = storyboard.instantiateController(withIdentifier: NSStoryboard.SceneIdentifier(rawValue: "LoginVC")) as! LoginViewController
if let window = NSApplication.shared.mainWindow
window.contentViewController = myWindowController //as! NSWindowController // just swap
}
答案 0 :(得分:0)
默认情况下,"新"菜单项会将newDocument(_:)
消息发送给"第一响应者"。如果responder chain上的任何对象实现它,则将启用菜单项,否则禁用菜单项。
要回复此消息,您可以:
func newDocument(_ sender: Any?)
(可能在某个地方朝向它的末尾,就像在app代理中一样)。在document-based application中,NSDocumentController
已经处理了此问题。