有没有办法在NSTableView中合并单元格?
我知道在NSTableView中有两种显示数据的模式:基于单元格和基于视图。如果数据由单元格表示,则函数
tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int)
是负责任的,否则
tableView(_ tableView: NSTableView, rowViewForRow row: Int)
目前我正在使用第一个。在iOS中,您可以使用界面构建器中的单元格原型将视图与自定义UITableViewCell链接,但是如何在NSTableView中完成整个行?
答案 0 :(得分:1)
也许我找到了解决方案:你可以同时使用
tableView(_:viewFor:row:)
和
tableView(:viewFor:tableColumn:row:)
但是你必须要知道tableView没有为一个单元格使用这两种方法(互斥)。
现在您可以定义一个xib,其中包含一个UIView。将UIView的类更改为NSTableRowView。接下来,将viewDidLoad中的类加载到表中:
if let nib: NSNib = NSNib(nibNamed: NSNib.Name("SpecialRow"), bundle: nil) {
self.tableView?.register(nib, forIdentifier: NSUserInterfaceItemIdentifier("specialRow"));
}
在表格方法rowViewForRow中,您可以执行以下操作:
if let srow: SpecialRow = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "specialRow"), owner: nil) as? SpecialRow {
// ...
return srow;
}