Oft gemacht in Objective-C und wieder gescheitert in Swift...   
 
Also, bei Programmstart lese ich alle zur Verfügung stehenden Daten ein und zeige diese - gruppiert - in einem Outlineview. Das funktioniert mittels TreeController sehr gut.
(Bild 1 und Bild 2)
Anschliessend sollen durch Anklicken die Elemente ausgewählt werden, mit denen eine Rechnung durchgeführt wird.
Ich generiere quasi ein neues Array (selectedDyes), das eine Teil des ganzen (allDyes) darstellt beim Auswahlprozess :
	
		
			
		
		
	
			Alles anzeigen
		
								
			Der Part mit var txt hat nur dazu gedient, um zu verifizieren, ob die richtigen Objekte kopiert werden. Dies ist der Fall.
Nun füge ich im IB einen Array-Kontroller ein, mache die Bindings zu o.a. selectedDyes. In der Tableview, die die ausgewählten Produkte anzeigen soll, weise ich der ersten Kolumne den Model Key Path "name" zu bei der Binding zum Array-Kontroller.
Dennoch bleibt die TableView leer.
Speichere ich selectedDyes in ein plist und weise anschliessend dem selectedDyes den Inhalt der plist Datei zu, füllt sich das TableView hingegen.
	
	
	Ich verstehe nicht, was ich falsch mache?! 
Hans
									
									
								 
 Also, bei Programmstart lese ich alle zur Verfügung stehenden Daten ein und zeige diese - gruppiert - in einem Outlineview. Das funktioniert mittels TreeController sehr gut.
(Bild 1 und Bild 2)
Anschliessend sollen durch Anklicken die Elemente ausgewählt werden, mit denen eine Rechnung durchgeführt wird.
Ich generiere quasi ein neues Array (selectedDyes), das eine Teil des ganzen (allDyes) darstellt beim Auswahlprozess :
Quellcode
- func outlineViewSelectionDidChange(notification: NSNotification) {
- var selected : NSIndexSet
- var first : Int
- //Rücksetzen vor jeder Neuselektierung
- selectedDyes.removeAllObjects()
- selected = outlineview.selectedRowIndexes
- first = selected.firstIndex
- for _ in selected {
- if first != NSNotFound && selected.count <= 8 {
- selectedDyes.addObject((outlineview.itemAtRow(first)?.representedObject)!)
- first = selected.indexGreaterThanIndex(first)
- }
- }
- var txt : String = selectedDyes.objectAtIndex(0).valueForKey("name") as! String
- NSLog("Name des Farbstoffes : %@", txt)
- }
Nun füge ich im IB einen Array-Kontroller ein, mache die Bindings zu o.a. selectedDyes. In der Tableview, die die ausgewählten Produkte anzeigen soll, weise ich der ersten Kolumne den Model Key Path "name" zu bei der Binding zum Array-Kontroller.
Dennoch bleibt die TableView leer.
Speichere ich selectedDyes in ein plist und weise anschliessend dem selectedDyes den Inhalt der plist Datei zu, füllt sich das TableView hingegen.
Hans

