【问题标题】:@IBDesignable fails to render class instance and crashes agent with Swift 3@IBDesignable 无法使用 Swift 3 呈现类实例并崩溃代理
【发布时间】:2016-09-30 10:37:45
【问题描述】:

我有一个 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)
    }

}

【问题讨论】:

    标签: swift cocoa xib


    【解决方案1】:

    您不能在可设计视图中使用Bundle.main。不如改用Bundle(for: type(of: self))

    【讨论】:

    • 非常感谢这个人!它确实有效,唯一的例外是 self.dynamicType 已被弃用。正确的语法是Bundle(for: type(of: self))
    • 糟糕,抱歉我的错误。我已经确定了我的答案。很高兴听到它现在有效。
    猜你喜欢
    • 2015-09-24
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    相关资源
    最近更新 更多