如何使用 indexOf 获取所选 NSCollectionView 的索引?

How do I use indexOf to get the index of a selected NSCollectionView?

我在 Objective-C 中看到了一些示例,例如 this one,但是 NSCollectionView.subview 使用了一个名为 .indexOfObject 的 属性,我假设替换为 .indexOf,但我不确定如何使用 .indexOf

Objective-C

中的上下文
NSInteger index = [[myCollectionView subviews]  indexOfObject:self];

Swift版本

var index = collectionView.subviews.indexOf(element: Self.Generator.Element)

问题:

如何使用 indexOf 获取所选 NSCollectionView 的索引?

indexOf的用法很简单:

let label = UILabel()
let tableView = UITableView()

let subviews: [UIView] = [label, tableView]

print(subviews.indexOf(label))     // Optional(0)
print(subviews.indexOf(tableView)) // Optional(1)

如您所见,它 returns 是一个可选的,如果在数组中找不到该对象,它将是 nil 。您可以像这样打开实际索引

if let index = collectionView.subviews.indexOf(self) {
    // do your stuff
} else {
    // view not found in subviews
}