2017-05-17 6 views
0

Ich habe einen NSArrayController, der an ein NSTableView gebunden ist, und die Datenquelle ist ein Array. Ich kann nicht scheinen, eine Entfernung zu entfernen, um Objekte vom Array und vom NSTableView zu entfernen.So entfernen Sie Objekte von NSArrrayController

Ich kann die Verwendung nach dem Objekt aus dem NSTableView zu löschen, aber es ist nicht von der Datenquelle Array oder NSArrayController entfernt

projectsTable.removeRows(at: [projectsTable.selectedRow], withAnimation:.effectFade) 

Ich habe auch versucht die folgenden Entfernen von Befehlen auf dem NSArrayController ohne Erfolg.

let prjremove = projectsArrayControler.selectedObjects 
let didRemove =projectsArrayControler.removeSelectedObjects(prjremove!) 

Die removeSelectedObjects gibt true zurück, aber eine Debug-Ansicht zeigt die Anzahl der Objekte in dem Arraycontroller nicht geändert zu haben, und es gibt keine Änderung in der NSTableView.

Ich ging davon aus, dass das Löschen eines Objekts oder einer Zeile aus dem NSTableView das Objekt aus der Datenquelle Array löschen würde. Anscheinend stimmt das nicht.

Ihre Worte der Weisheit werden geschätzt.

Jim

Antwort

0

removeSelectedObjects:

Entfernt Objekte aus dem aktuellen Auswahl des Empfängers, die Rückkehr JA, wenn die Auswahl geändert wurde.

"Entfernt Objekte von der aktuellen Auswahl des Empfängers" bedeutet, dass die Objekte abgewählt sind.

Verwendung func remove(contentsOf objects: [Any]):

Entfernt Objekte aus der Content Collection des Empfängers.

oder func remove(_ sender: Any?):

Entfernt die ausgewählten Objekte des Empfängers aus der Content Collection.

+0

Vielen Dank für die Erklärung. Die Verwendung von remove (_ sender: Any?) Funktionierte einwandfrei. – svjim