OutlineGroup
类似于 NSOutlineView
. NSOutlineView
支持单/多节点选择,我们可以通过查询NSOutlineView
获得它们。 .虽然在 NSOutlineView
上获得选择是 O(n),但如果 View 跟踪选择并在适当的界面中提供它们,则可以将其优化为 O(1)。
如何从 OutlineGroup
获取选择?特别是对于多节点选择。我签了 the manual entry ,但找不到任何关于选择的提及。我在这里错过了什么?
最佳答案
文档看起来并没有完全完成。在 Xcode 12 中使用直接 SwiftUI 自动生成的界面来查找更新。
特别是问OutlineGroup
有几个构造函数 selection
参数,如下:
/// Creates a hierarchical list that computes its rows on demand from an
/// underlying collection of identifiable data, optionally allowing users to
/// select multiple rows.
///
/// - Parameters:
/// - data: The identifiable data for computing the list.
/// - selection: A binding to a set that identifies selected rows.
/// - rowContent: A view builder that creates the view for a single row of
/// the list.
@available(iOS 14.0, OSX 10.16, *)
@available(tvOS, unavailable)
@available(watchOS, unavailable)
public init<Data, RowContent>(_ data: Data, children: KeyPath<Data.Element, Data?>,
selection: Binding<Set<SelectionValue>>?, @ViewBuilder rowContent: @escaping (Data.Element) -> RowContent) where Content == OutlineGroup<Data, Data.Element.ID, HStack<RowContent>, HStack<RowContent>, DisclosureGroup<HStack<RowContent>, OutlineSubgroupChildren>>, Data : RandomAccessCollection, RowContent : View, Data.Element : Identifiable
关于SwiftUI:如何从 OutlineGroup 获取选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62546266/