1.添加一个窗口类
class AddWindowWC<RootView : View>: NSWindowController {
convenience init(rootView: RootView) {
let hostingController = NSHostingController(rootView: rootView.frame(width: 300, height: 400))
let window = NSWindow(contentViewController: hostingController)
window.setContentSize(NSSize(width: 300, height: 400))
self.init(window: window)
}
}
这是一个窗口类,创建实例后会创建一个新的窗口。阅读代码我们可以看出如果实例化此类,将会得到一个宽300,高400的新窗口。
2.新建一个要跳转后的swiftui文件
这里我们创建一个名为“addWindowView.swift”的swiftUI View文件。
import SwiftUI
struct addWindowView: View {
@State var inputname = ""
@State var inputclass = ""
@State var idnum = ""
var body: some View {
VStack{
HStack{
Text("姓名")
TextField("姓名", text:$inputname)
}
.padding()
HStack{
Text("班级")
TextField("班级号", text: $inputclass)
}
.padding()
HStack{
Text("学号")
TextField("学号", text: $idnum)
}
.padding()
}
}
}
struct addWindowView_Previews: PreviewProvider {
static var previews: some View {
addWindowView()
}
}
3.添加一个按钮来进行跳转
Button按钮的action修改为用刚刚制作的界面作为rootView创建新窗口的命令。代码如下:
Button(action: {
let AddWindowView = addWindowView(viewContext: viewContext)
let controller = AddWindowWC(rootView: AddWindowView)
controller.window?.title = "新窗口的标题"
controller.showWindow(nil)
}) {
Label("按钮的标题", systemImage: "plus")
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。