3

J'essaie désespérément de connecter les contrôles de NSViews qui résideront dans un NSCollectionView en utilisant des prises. La vue de collection est alimentée à l'aide d'un NSArrayController.Comment utiliser NSCollectionView et les prises correctement?

J'ai créé le NSView dans un fichier NIB séparé et dans la mise en œuvre de NSCollectionViewItem I réenregistrés copyWithZone pour le charger:

-(id)copyWithZone:(NSZone *)zone 
{ 
    id result = [super copyWithZone:zone]; 

    [NSBundle loadNibNamed:@"InputView" owner:result]; 

    return result; 
} 

Je l'ai utilisé cette approche selon cette instructions.

Malheureusement, ce qui se passe est que:

alt text

Le NSView ressemble à ceci:

alt text

Le NSCollectionView réside dans un NSScrollView et la barre de défilement est réglé pour activer automatiquement. Mais comme vous pouvez le voir, il n'y a pas de barre de défilement.

Je ne comprends pas vraiment ce que j'ai besoin de faire pour que NSCollectionView connaisse les dimensions de ses NSViews.

Il a travaillé avant que je n'avais pas séparé NIB fichier, mais je ne pouvais pas établir des connexions de sortie de la vue de l'élément :-(

+1

Le lien d'instructions est rompu. – febeling

+0

Eh bien, c'est un très vieux post. J'ai écrit quelque chose à ce sujet ici qui pourrait vous aider si: http://andrehoffmann.wordpress.com/2009/08/29/nscollectionview-tutorial-for-dummies-xcode-3-1-3/ –

Répondre

5

Combien de éléments sont en contrôleur de réseau Votre sortie semble correcte pour ce que vous avez décrit, en supposant qu'il y a au moins 14 éléments dans le contrôleur (1 vue par élément) .Le dimensionnement est juste éteint, mais le problème que vous essayez de résoudre n'est pas clair

Peut-être que vous étiez à la recherche d'une grille, et donc besoin d'appeler setMaximumNumberOfColumns:? Ou peut-être vos vues ne sont pas redimensionnées comme vous vous attendez (vérifier -maxItemSize et -minItemSize)?

+0

J'ai oublié de mentionner que NSCollectionView réside dans un NSScrollView et la barre de défilement est définie pour activer automatiquement. Mais comme vous pouvez le voir, il n'y a pas de barre de défilement. Je ne comprends pas vraiment ce que je dois faire pour que NSCollectionView connaisse la taille de ses NSViews. J'espère que j'ai fait problème peut-être un peu plus clair. –

+1

+1. Oui, si vous n'obtenez pas la disposition que vous attendez, vous devez absolument appeler setMinItemSize: et/ou setMaxItemSize :. Si minItemSize est {0, 0}, la vue de collection tentera de placer toutes les vues dans la zone visible et elle ne défilera pas. – kperryua

+0

Merci. La définition de minItemSize a résolu mon problème. –

Questions connexes