Настройте высоту ячеек NSOutlineView или NSTableView в соответствии с пользовательским представлением в - PullRequest
1 голос
/ 05 апреля 2020

У меня есть 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, а не пользовательский вид.

Могу ли я в любом случае получить прямой доступ к каждой ячейке / строке и установить ее высоту, равную высоте пользовательского представления?

...