如何初始化 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")
}
}
编译器在第 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")
}
}