swift - NSTableView socket 在代码中子类化为 NSOutlineView?

标签 swift macos nstableview subclassing

这是一个我找不到任何建议的问题(可能是因为我在网上搜索时英语不好:因此标题不好!)。

我在 xib 中有一个 NSTableView 的子类,它在不同的窗口中多次使用。但是在这些窗口之一中,我希望 tableView 表现得像 NSOutlineView(但也受益于我添加的不错的功能)。 我不愿意简单地创建一个 outlineView 的子类并将所有代码从 tableView 子类复制到它,因为我想重用相同的代码(更容易的代码维护)和 xib。我该怎么办?

乔希

最佳答案

如果您的子类没有额外的存储属性,并且您不需要重写初始化器,请在 NSTableView 的扩展子句中声明您的方法,而不是子类:

extension NSTableView {
   func forAllSubclassesOfNSTableView() { /* etc. */ }
}


let ov = NSOutlineView()
ov.forAllSubclassesOfNSTableView() // Works

关于swift - NSTableView socket 在代码中子类化为 NSOutlineView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38946972/

相关文章:

swift - 准确获取 NSTextField 包装大小 (Swift)

objective-c - Core Data 和 NSTableView 将内容显示为标题

swift - 为什么我的插页式广告产生错误?

ios - 向上滚动时在 UICollectionView 中保持滚动位置

linux - 为什么 tcpdump 的输出行为与三次握手的定义不同

c++ - 我如何从 Cocoa 中获取 'break away' 并在 C/C++ 中开发 Mac OpenGL 应用程序?

objective-c - 以编程方式将 NSTableView 内的 NSButton 位置设置为居中

ios - 为什么我的 iOS 应用程序中的函数会被调用两次?

swift - 访问所有数组元素的子节点

bash - 从标准输入解码多个 base64 字符串