使用 Swift 中的 selectedIndexSet 从 Cocoa NSOutlineView 获取多个项目
Get multiple items from Cocoa NSOutlineView using selectedIndexSet in Swift
当我需要从 NSOutlineView 中获取选定的项目时,我可以使用这个:
func item(atRow row: Int) -> Any?
但是如何在使用多选时获取项目列表?
我可以使用
var selectedRowIndexes: IndexSet { get }
获取 IndexSet 但没有实现的方法来获取所选项目的数组?
感谢您的建议
Map
项目的行,compactMap
安全地解包选项。
let selectedItems = outlineView.selectedRowIndexes.compactMap{outlineView.item(atRow: [=10=])}
outlineView
是对 NSOutlineView
的引用
结果是Any
的数组。您可以在闭包或行尾转换类型。
当我需要从 NSOutlineView 中获取选定的项目时,我可以使用这个:
func item(atRow row: Int) -> Any?
但是如何在使用多选时获取项目列表? 我可以使用
var selectedRowIndexes: IndexSet { get }
获取 IndexSet 但没有实现的方法来获取所选项目的数组?
感谢您的建议
Map
项目的行,compactMap
安全地解包选项。
let selectedItems = outlineView.selectedRowIndexes.compactMap{outlineView.item(atRow: [=10=])}
outlineView
是对 NSOutlineView
结果是Any
的数组。您可以在闭包或行尾转换类型。