2015-09-13 1 views
1

J'ai vu des exemples dans Objective-C tels que this one, mais NSCollectionView.subview utilise une propriété appelée .indexOfObject que je suppose a été remplacé par .indexOf, mais je ne suis pas sûr de savoir comment utiliser .indexOf.Comment utiliser indexOf pour obtenir l'index d'un NSCollectionView sélectionné?

Contexte dans Objective-C

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

Version Swift

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

Question:

Comment puis-je utiliser indexOf pour obtenir l'index d'un sélectionné NSCollectionView?

Répondre

1

L'utilisation de indexOf est simple:

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

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

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

Comme vous pouvez le voir, il renvoie une option qui sera nil si l'objet ne se trouve pas dans le tableau. Vous pouvez dérouler l'index réel comme ceci

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

Est-ce que cela s'applique à OS X NSCollectionView? –

+0

@DanBeaulieu Si le code Objective-C de la question que vous avez liée fonctionne, alors oui. La méthode 'indexOf' appartient au protocole' CollectionType' et est indépendante de 'NSCollectionView'. – hennes

+0

merci hennes –