【问题标题】:How do I link storyboard and swift in a Mac application?如何在 Mac 应用程序中链接故事板和 swift?
【发布时间】:2020-04-18 21:37:20
【问题描述】:

我正在尝试从故事板 IBsegue 到我的 NSHostingView 子类。这是为 Mac 应用程序链接故事板和 SwiftUI 的正确方法吗?(如果不是,正确的方法是什么?)如果是,我在子类文件中收到四个错误:

import Cocoa

class hosty: NSHostingView {

    override func draw(_ dirtyRect: NSRect) {
        super.draw(dirtyRect)

        // Drawing code here.
    }

    @IBSegueAction func termo(_ coder: NSCoder) -> NSViewController? {
        return NSHostingController(coder: coder, rootView: ContentView())
    }
}

使用未声明的类型“NSHostingView”class hosty: NSHostingView {
方法不会覆盖其超类中的任何方法 override func draw(_ dirtyRect: NSRect) {
'super' 成员不能在根类中被引用 super.draw(dirtyRect)
使用未解析的标识符 'NSHostingController' return NSHostingController(coder: coder, rootView: ContentView())

【问题讨论】:

    标签: swift macos storyboard swiftui


    【解决方案1】:

    您需要导入SwiftUI 并为NSHostingView 指定泛型类型,如下所示

    import Cocoa
    import SwiftUI
    
    class hosty: NSHostingView<ContentView> {
    
        override func draw(_ dirtyRect: NSRect) {
            super.draw(dirtyRect)
    
            // Drawing code here.
        }
    
        @IBSegueAction func termo(_ coder: NSCoder) -> NSViewController? {
            return NSHostingController(coder: coder, rootView: ContentView())
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多