2

J'essaie de donner une taille dynamique à mon NSCollectionViewItem. Je veux qu'ils aient une taille déterminée par leur contenu et la contrainte que j'ai définie.Taille dynamique pour NSCollectionViewItem

Pour que je dois ajouter à mon viewcontroller qui détient le NSCollectionView les suivantes:

extension ViewController : NSCollectionViewDelegateFlowLayout { 
    func collectionView(_ collectionView: NSCollectionView, layout collectionViewLayout: NSCollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> NSSize{ 

     let item = collectionView.item(at: indexPath) 
     if let viewItem = item as NSCollectionViewItem? { 
      return viewItem.view.fittingSize 
     } 

     return NSSize(width: 200, height: 100) 

    } 
} 

qui jettent une exception.

An uncaught exception was raised 
*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0] 

Je ne vois pas où il vient, j'ai essayé de l'attraper, mais Xcode dit que item(at:) faire jette pas exception.

Edit: mais en fait, il le fait, j'ai eu un point d'arrêt d'exception et rupture dans item(at:)item(at:) exception

A côté d'envoyer un Repport bug à Apple ne quelqu'un a une autre idée? Et puisque item (at :) n'est pas supposé lancer une erreur, un bloc catch n'est pas efficace

Répondre

0

Comme vous le mentionnez, je ne pense pas que cette méthode plante. De la documentation:

Retour: L'élément pour le chemin d'index spécifié ou nul si aucun élément est disponible.

Avez-vous essayé de add an exception breakpoint? Vous devriez voir où il se bloque.

+0

J'ai essayé et 'item (at:)' envoyer une exception – Jerome