如何以编程方式在Swift 4中显示窗口/视图控制器for macOS应用程序
我试图以编程方式在我的macOS应用程序中显示一个窗口。我想以编程方式执行此操作的原因是因为用户单击登录按钮,并且生成的功能取决于登录成功。如果成功,则显示窗口;否则,它不是。如何以编程方式在Swift 4中显示窗口/视图控制器for macOS应用程序
这里是我的Xcode窗口截图:
这里就是我想要的代码(Alert
是一类我创建使显示NSAlert
对话更容易):
@IBAction func btnLogin_Click(_ sender: Any) { let email = txtEmail.stringValue
if(email.isEmpty) {
Alert.show(parent: view.window!, message: "Email is required.")
return
}
let password = txtPassword.stringValue
if(password.isEmpty) {
Alert.show(parent: view.window!, message: "Password is required.")
return
}
// this does not work, even though I gave the window and view controllers
// both identifiers in the storyboard
self.storyboard?.instantiateController(withIdentifier: NSStoryboard.SceneIdentifier("wcStores"))
}
NSStoryboard.SceneIdentifier
的Apple文档几乎不存在,其他我见过的方法似乎与早期版本的Swift有关。
我在做什么错?
回答:
好吧,所以这不是我最初试图做的事情,但这种方式更好,我真正在寻找的东西。
let vcStores = self.storyboard?.instantiateController(withIdentifier: NSStoryboard.SceneIdentifier("vcStores")) as! NSViewController
self.view.window?.contentViewController = vcStores
这将只是在视图vcStores
在接口生成器中定义的内容替换窗口内容。
This video也有帮助,虽然iOS和斯威夫特3.我是想先创建一个新的NSWindow
,因为我已经习惯在Java Swing或C#Windows窗体做桌面开发。但我喜欢这种切换窗口内容的容易程度。
以上是 如何以编程方式在Swift 4中显示窗口/视图控制器for macOS应用程序 的全部内容, 来源链接: utcz.com/qa/259451.html