使用Swift中的selectedIndexSet从Cocoa NSOutlineView获取多个项目

使用Swift中的selectedIndexSet从Cocoa NSOutlineView获取多个项目,swift,xcode,cocoa,nsoutlineview,Swift,Xcode,Cocoa,Nsoutlineview,当我需要从NSOutlineView获取所选项目时,我可以使用以下方法: func item(atRow row: Int) -> Any? 但是,当使用多个选项时,如何获得项目列表? 我可以用 var selectedRowIndexes: IndexSet { get } 获取索引集,但是否有一种实现的方法来获取所选项目的数组 感谢您的建议将行映射到项目,compactMap安全地打开选项 let selectedItems = outlineView.selectedRowInd

当我需要从NSOutlineView获取所选项目时,我可以使用以下方法:

func item(atRow row: Int) -> Any?
但是,当使用多个选项时,如何获得项目列表? 我可以用

var selectedRowIndexes: IndexSet { get }
获取索引集,但是否有一种实现的方法来获取所选项目的数组


感谢您的建议

将行映射到项目,
compactMap
安全地打开选项

let selectedItems = outlineView.selectedRowIndexes.compactMap{outlineView.item(atRow: $0)}
outlineView
是对
NSOutlineView

结果是一个
Any
数组。您可以在闭包中或在行的末尾强制转换类型