我制作了一个非常简单的带有两个窗口的mac应用程序。我是一个iOS开发人员,所以我非常熟悉iOS应用程序中的一些UI元素,但是在构建OS应用程序时,有些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
}发布于 2017-11-01 21:53:59
默认情况下,“新建”菜单项将向“第一个响应者”发送newDocument(_:)消息。如果应答链上的任何对象实现了它,那么菜单项将被启用,否则菜单项将被禁用。
若要响应此消息,您可以:
func newDocument(_ sender: Any?) (可能是在其末尾的某个地方,比如在应用程序委托中)。在基于文档的应用中,NSDocumentController已经可以处理这个问题了。https://stackoverflow.com/questions/47063816
复制相似问题