如何初始化 NSTableRowView 子类?

How to initialize NSTableRowView subclass?

编译器在第 3 行崩溃,我无法在任何地方找到有关 NSTableRowView 初始化程序的信息

class ItemRowView: NSTableRowView {
    convenience override init(frame: NSRect) {
        self.init(frame: frame) // EXC BAD ACCESS
        self.draggingDestinationFeedbackStyle = NSTableViewDraggingDestinationFeedbackStyle.None
    }

首先,init( frame: NSRect )指定的初始化器,所以关键字convenience在这个地方是错误的。 那么您可能打算递归地调用 super 初始值设定项而不是您自己的方法。 最后你需要实现另一个必需的初始化器 init?(coder: NSCoder)

下面的代码应该让你开始:

class ItemRowView: NSTableRowView {
    override init(frame: NSRect) {
        super.init(frame: frame) // super - not self
        self.draggingDestinationFeedbackStyle = NSTableViewDraggingDestinationFeedbackStyle.None
    }

    required init?(coder: NSCoder) {
        // Write something useful here, or leave the default implementation
        fatalError("init(coder:) has not been implemented")
    }
}