У меня есть 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
, а не пользовательский вид.
Могу ли я в любом случае получить прямой доступ к каждой ячейке / строке и установить ее высоту, равную высоте пользовательского представления?