如何在Mac应用程序中链接情节提要和快捷方式?

时间:2019-12-30 04:37:17

标签: swift macos storyboard swiftui

我正在尝试从故事板到我的NSHostingView子类IBsegue。这是为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.draw(dirtyRect)中不能引用'super'成员
使用未解决的标识符'NSHostingController'return NSHostingController(coder: coder, rootView: ContentView())

1 个答案:

答案 0 :(得分:0)

您需要导入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())
    }
}