NSTextView + NSMultipleValuesPlaceholderBindingOption

  • NSTextView + NSMultipleValuesPlaceholderBindingOption

    Hallo,

    is it a bug or a feature?

    Vorhanden ist eine CoreData Anwendung mit einer Entität: Document.
    Ein Document-Objekt besteht aus einem "inhalt" (Binary) und einem "title" (String).

    In einem ArrayController befinden sich einige Document-Objekte. Eine Tabelle zeigt die Titel dieser Document-Objekte an. Ein NSTextView zeigt den "inhalt" des aktuell selektierten Documents an. Funktioniert.

    Falls der Benutzer nun mehrere Document-Objekte in dem TableView markiert soll in dem TextView "Multiple Selection" erscheinen.

    Gut - dazu gibts ja NSMultipleValuesPlaceholderBindingOption. Das funktioniert auch. Allerdings liegt nur eine "multiple selection" vor, falls der Benutzer mehr als ein Document in der Tabelle markiert, dessen "inhalt" Attribut ungleich nil ist. Markiert der Benutzer z.B.: drei Dokumente von denen zwei noch kein "inhalt" haben, so wird dies nicht als "multiple selection" gewertet.

    Ist das so gedacht? Ich könnte natürlich jedes Document Objekt mit einem "standardinhalt" erzeugen - aber der Benutzer könnte diesen ja auch löschen.
    Die Objective-Cloud ist fertig wenn sie fertig ist. Beta heißt Beta.

    Objective-C und Cocoa Band 2: Fortgeschrittene
    Cocoa/Objective-C Seminare von [co coa:ding].
  • Ich könnte natürlich jedes Document Objekt mit einem "standardinhalt" erzeugen - aber der Benutzer könnte diesen ja auch löschen.

    Wie sollte der Benutzer das machen? Er könnte den Text ja höchstens auf einen leeren String setzen, nicht aber auf nil.
  • Original von omz
    Ich könnte natürlich jedes Document Objekt mit einem "standardinhalt" erzeugen - aber der Benutzer könnte diesen ja auch löschen.

    Wie sollte der Benutzer das machen? Er könnte den Text ja höchstens auf einen leeren String setzen, nicht aber auf nil.


    Binde mal ein NSTextView's data Binding an ein Binaryattribut eines ManagedObjects. Tipp was ins TextView - lösche es wieder und dann hat das Binaryattribut den Wert nil. Da müsste man dann einen ValueTransformer einbauen oder das Ganze im Model direkt abfangen.

    So einfach geht das nicht. Daher ja meine "Vermutung", dass das so nicht gedacht gewesen ist.

    Wobei es ja eigentlich okay ist das Gleichzeitige Bearbeiten gleicher values zu erlauben - in meinem speziellen Fall, wie mir gerade aufgefallen ist.
    Die Objective-Cloud ist fertig wenn sie fertig ist. Beta heißt Beta.

    Objective-C und Cocoa Band 2: Fortgeschrittene
    Cocoa/Objective-C Seminare von [co coa:ding].
  • Binde mal ein NSTextView's data Binding an ein Binaryattribut eines ManagedObjects. Tipp was ins TextView - lösche es wieder und dann hat das Binaryattribut den Wert nil. Da müsste man dann einen ValueTransformer einbauen oder das Ganze im Model direkt abfangen.

    Interessant, wusste ich gar nicht.