@IBDesignable无法使用Swift 3呈现类实例和崩溃代理

时间:2016-09-30 10:37:45

标签: swift cocoa xib

我有一个xib,在构建项目后可以很好地加载。在构建时,虽然我收到以下错误:

Main.storyboard: error: IB Designables: Failed to render instance of PalitraPaletteSelector: The agent crashed

我已经阅读了很多答案,甚至清理了DerivedData文件夹也无济于事。两个初始化程序都已实现,所以我看不到我在这里缺少什么。

这是我的代码:

@IBDesignable
class PalitraPaletteSelector: NSStackView {

    @IBOutlet var view: NSStackView!

    required init?(coder: NSCoder) {
        super.init(coder: coder)
        loadViewFromNib()
    }

    override init(frame frameRect: NSRect) {
        super.init(frame: frameRect)
        loadViewFromNib()
    }

    func loadViewFromNib() {
        Bundle.main.loadNibNamed("PalitraPaletteSelector", owner: self, topLevelObjects: nil)
        view.frame = self.bounds
        self.addSubview(view)
    }

}

1 个答案:

答案 0 :(得分:6)

您无法在可设计的视图中使用Bundle.main。如何使用Bundle(for: type(of: self))代替。