这是一个我无法找到任何建议的问题(可能是由于我在网上搜索时的英语不好:因此标题不好!)。
我在xib中有一个NSTableView的子类,它在不同的窗口中多次使用。但是在其中一个窗口中,我希望tableView表现为NSOutlineView(但也受益于我添加的优秀功能)。 我不愿意简单地创建outlineView的子类并将tableView子类中的所有代码复制到它,因为我想重用相同的代码(更容易的代码维护),以及xib。我该怎么办?
约什
答案 0 :(得分:0)
如果您的子类没有其他存储属性,并且您不需要覆盖初始值设定项,请将扩展子句中的方法声明为NSTableView
而不是子类:
extension NSTableView {
func forAllSubclassesOfNSTableView() { /* etc. */ }
}
let ov = NSOutlineView()
ov.forAllSubclassesOfNSTableView() // Works