将NSOutlineView或NSTableView单元格的高度调整为其中的自定义视图

时间:2020-04-05 19:13:25

标签: swift autolayout swiftui nstableview nsoutlineview

我有一个NSOutlineView视图,该视图使用自定义SwiftUI视图作为其单元格:

func outlineView(_ outlineView: NSOutlineView, viewFor tableColumn: NSTableColumn?, item: Any) -> NSView? {
    guard tableColumn?.identifier.rawValue == "the correct id" else { return }
    guard let myItem = item as? MyType else { return }
    return NSHostingView(rootView: MySwiftUIView(someProperty: myItem))
}

自定义视图的高度可以更改,因此我想找到一种方法来动态调整NSOutlineView单元格的高度以适应内部托管的自定义视图。到目前为止,我仅在NSOutlineViewDelegate中发现了此函数,该函数使我可以设置行的高度:

func outlineView(_ outlineView: NSOutlineView, heightOfRowByItem item: Any) -> CGFloat

但是,我只能基于item而不是自定义视图来设置行的高度。

我是否可以直接访问每个单元格/行,并将其高度设置为与自定义视图相同的高度?

0 个答案:

没有答案