Wow*_*nch 9 macos storyboard appkit swift swiftui
我有一个 SwiftUI 视图MySwiftUIView
:
import SwiftUI
struct MySwiftUIView: View {
var body: some View {
Text("Hello, World!")
}
}
Run Code Online (Sandbox Code Playgroud)
我想将它用作 AppKit 视图的一部分。我尝试了以下代码:
import Cocoa
import SwiftUI
class MyViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubview( NSHostingView(rootView: MySwiftUIView()) )
}
}
Run Code Online (Sandbox Code Playgroud)
与相应的故事板:
代码构建后,结果是一个空窗口:
我想要的是这样的:
我应该如何实现这一点?
Asp*_*eri 12
您以编程方式设置子视图,因此约束由您负责,SwiftUI 也不例外。
这是正确的变体(使用 Xcode 11.4 测试):
override func viewDidLoad() {
super.viewDidLoad()
let myView = NSHostingView(rootView: MySwiftUIView())
myView.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(myView)
myView.centerYAnchor.constraint(equalTo: self.view.centerYAnchor).isActive = true
myView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3137 次 |
最近记录: |