3

Ich versuche verzweifelt, Steuerelemente von NSViews zu verbinden, die in einer NSCollectionView unter Verwendung von Steckdosen liegen. Die Sammlungsansicht wird mit einem NSArrayController gespeist.Wie werden NSCollectionView und Outlets richtig verwendet?

habe ich die NSView in einer separaten Datei NIB und bei der Umsetzung von NSCollectionViewItem ich überschrieb copyWithZone es zu laden:

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

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

    return result; 
} 

ich diesen Ansatz verwendet haben diese instructions nach.

Leider ist das, was passiert:

alt text

Die NSView sieht wie folgt aus:

alt text

Die NSCollectionView befindet sich in einem NSScrollView und die Scrollbar gesetzt wird automatisch zu aktivieren. Aber wie Sie sehen können, gibt es keine Bildlaufleiste.

Ich verstehe nicht wirklich, was ich tun muss, damit die NSCollectionView die Dimensionen seiner NSViews kennt.

Es wird gearbeitet, bevor, wenn ich nicht Auslassanschlüsse aus der Sicht auf das Element habe :-(Ich konnte

eine separate NIB-Datei, aber dann nicht
+1

Der Link zur Anleitung ist defekt. – febeling

+0

Nun, es ist eine ziemlich alte Post. Ich habe hier etwas darüber geschrieben, das Ihnen vielleicht helfen könnte: http://andrehoffmann.wordpress.com/2009/08/29/nscollectionview-tutorial-for-dummies-xcode-3-1-3/ –

Antwort

5

Wie viele Artikel sind in den Array-Controller machen "Ihre Ausgabe sieht korrekt aus, was Sie beschrieben haben, vorausgesetzt, es gibt mindestens 14 Dinge auf dem Controller (1 Ansicht pro Element). Die Dimensionierung ist gerade aus. Es ist nicht klar, welches Problem Sie lösen möchten.

Vielleicht haben Sie nach einem Raster gesucht und müssen daher anrufen oder Ihre Ansichten werden nicht wie erwartet angepasst (siehe -maxItemSize und -minItemSize)?

+0

Ich habe vergessen zu erwähnen dass sich die NSCollectionView in einer NSScrollView befindet und die Bildlaufleiste automatisch aktiviert wird. Aber wie Sie sehen können, gibt es keine Bildlaufleiste. Ich verstehe nicht wirklich, was ich tun muss, damit NSCollectionView die Größe seiner NSViews kennt. Ich hoffe ich habe das Problem ein wenig klarer gemacht. –

+1

+1. Ja, wenn Sie nicht das von Ihnen erwartete Layout erhalten, müssen Sie unbedingt setMinItemSize: und/oder setMaxItemSize: aufrufen. Wenn die MinItemSize {0, 0} ist, versucht die Sammlungsansicht, alle Ansichten in den sichtbaren Bereich zu stellen, und es wird kein Bildlauf ausgeführt. – kperryua

+0

Vielen Dank. Die Einstellung von minItemSize hat mein Problem gelöst. –