Ich möchte einen AddObserver zu meinem NSArraycontroller machen. Die Idee ist, dass, wenn ein Datensatz von Core Data (binden an den NSArrayController) Änderungen der Datensatz wird in der sqlite-Datenbank gespeichert wird. Der NSArraycontroller ist an eine NSTableView gebunden.Hinzufügen eines Observer zu einem NSArrayController
Antwort
Wenn Sie sich für die Benachrichtigung NSManagedObjectContextObjectsDidChange
auf dem verwalteten Objektkontext Ihres Array-Controllers registrieren, erhalten Sie Benachrichtigungen, wenn sich diese Objekte ändern. Wenn Sie einen dedizierten untergeordneten MOC für Ihre Ansicht verwenden, erfasst dieser MOC alle Änderungen, und Sie können Ihren MOC anschließend in seinen übergeordneten Bereich speichern.
Wenn Sie Benachrichtigungen basierend auf Benutzeränderungen benötigen, verwenden Sie die Tabellenansicht und nicht den Array-Controller. Wenn Sie weiterhin eine zellenbasierte Tabellenansicht verwenden, sollten Sie eine der (veralteten) Methoden wie -textDidEndEditing: überschreiben.
Sehen Sie sich für View-basierte Tabellenansichten die verschiedenen Delegaten für NSControl an, z. B. -control: textShouldEndEditing: on NSControlTextEditingDelegate. Implementieren Sie sie auf Ihrem TableView-Delegaten, und natürlich machen Sie den TableView-Delegaten auch den Delegierten jedes Steuerelements in Ihrer Tabelle (das könnte schon passieren? Überprüfen Sie zuerst).
How can I get notified when the user finishes editing a cell in an NSTableView? hat eine gute Diskussion.
Vielen Dank Hal Mueller.
sich für gehen:
// MARK: - Textfield.
override func controlTextDidEndEditing(_ obj: Notification) {
print("Notificatie: \(obj)")
}
Jetzt kann ich weiter gehen.
- 1. NSArrayController vs NSMutableArray - Wann verwenden Sie einen NSArrayController?
- 2. NSArrayController setFetchPredicate
- 3. Speicherbedingter Absturz beim Hinzufügen von Objekten zu NSArrayController
- 4. NSArrayController Initialisierung
- 5. NSArrayController, benutzerdefinierte Sortierung
- 6. Der beste Weg, um einen NSArrayController zu einem NSMutableArray verwaltet hinzufügen/entfernen
- 7. Problem filtert NSArrayController
- 8. Realm + NSTableView + NSArrayController
- 9. Hinzufügen eines Hintergrundbilds zu einem UILabel
- 10. Hinzufügen eines Navigationselements zu einem Ansichts-Controller
- 11. Hinzufügen eines Wasserzeichenbilds zu einem Bild
- 12. Hinzufügen eines INDEX zu einem CTE
- 13. Hinzufügen eines Inhaltsverzeichnisses zu einem Jasper-Bericht?
- 14. Hinzufügen eines Elements zu einem C# -Array
- 15. Hinzufügen eines Objekts zu einem Array
- 16. Hinzufügen eines Rahmens zu einem inneren Dreieck
- 17. Hinzufügen eines Bildes zu einem HighChart
- 18. Hinzufügen eines Overlays zu einem Reaktivnavigationsnavigator
- 19. Hinzufügen eines Wertes zu einem hashmap java
- 20. Hinzufügen eines .join zu einem beobachtbaren Array
- 21. Hinzufügen eines Elements zu einem Marisa Trie
- 22. Hinzufügen eines Auffüllens/Randes zu einem spannbaren
- 23. Hinzufügen eines Wertes zu einem Array
- 24. Hinzufügen eines Zeitstempels Filter zu einem Bereich
- 25. Hinzufügen eines Logos zu einem gameObject Unity
- 26. Hinzufügen eines MouseOverHandlers zu einem Element?
- 27. Qt - Hinzufügen eines Hyperlinks zu einem Dialog
- 28. Hinzufügen eines Platzhalters zu einem GWT-Texteingabefeld
- 29. Matlab - Hinzufügen eines Timers zu einem Diagramm
- 30. Hinzufügen eines Bildes zu einem UIAlertController
Sie erhalten Benachrichtigungen, wenn sich Objekte ändern. – Willeke
Ich habe versucht, das Tutorial die folgende Seite hinzuzufügen, tut aber nicht was ich will. https://cocoacasts.com/how-to-observe-a-managed-object-context/ Die Benachrichtigung erfolgt nur, wenn der Befehl zum Speichern ausgeführt wird. Was ist falsch? Ich brauche einen addObserver, der stattfindet, wenn ein Textfeld in der NSTableView bearbeitet wird. –
Vielen Dank Hal Mueller. Bij geht für: // MARK: - Textfield. überschreiben func controlTextDidEndEditing (_ obj: Benachrichtigung) { drucken ("Notification: \ (obj)") } –