@IBDesignable 无法使用 Swift 3 呈现类实例并崩溃代理
Posted
技术标签:
【中文标题】@IBDesignable 无法使用 Swift 3 呈现类实例并崩溃代理【英文标题】:@IBDesignable fails to render class instance and crashes agent with 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)
【问题讨论】:
【参考方案1】:您不能在可设计视图中使用Bundle.main
。不如改用Bundle(for: type(of: self))
。
【讨论】:
非常感谢这个人!它确实有效,唯一的例外是self.dynamicType
已被弃用。正确的语法是Bundle(for: type(of: self))
。
糟糕,抱歉我的错误。我已经确定了我的答案。很高兴听到它现在有效。以上是关于@IBDesignable 无法使用 Swift 3 呈现类实例并崩溃代理的主要内容,如果未能解决你的问题,请参考以下文章
使用Swift在Xcode 9中不显示IBDesignable UI
Swift @IBDesignable/@IBInspectable UIView 样式
Xcode 9.2 和 Swift 4 中的 AppKit 的 IBDesignable 是不是损坏?
swift 来自http://nshipster.com/ibinspectable-ibdesignable/