【问题标题】:How do I use indexOf to get the index of a selected NSCollectionView?如何使用 indexOf 获取选定 NSCollectionView 的索引?
【发布时间】:2015-09-13 16:58:25
【问题描述】:

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

Objective-C 中的上下文

NSInteger index = [[myCollectionView subviews]  indexOfObject:self];

斯威夫特版本

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

问题:

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

【问题讨论】:

    标签: macos swift indexing xcode7 nscollectionview


    【解决方案1】:

    indexOf 的用法很简单:

    let label = UILabel()
    let tableView = UITableView()
    
    let subviews: [UIView] = [label, tableView]
    
    print(subviews.indexOf(label))     // Optional(0)
    print(subviews.indexOf(tableView)) // Optional(1)
    

    如您所见,如果在数组中找不到对象,它会返回一个可选的 nil。你可以像这样解开实际的索引

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

    【讨论】:

    • 这同样适用于 OS X NSCollectionView 吗?
    • @DanBeaulieu 如果您链接的问题中的 Objective-C 代码有效,那么可以。方法indexOf属于CollectionType协议,独立于NSCollectionView
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多