Bindings + selection + Proxy beeinflussen?

  • Bindings + selection + Proxy beeinflussen?

    Hallo,

    wieder ein kleines Problem mit Core Data/Bindings:

    Entität: Bild (repräsentiert ein Bild - wer hätte es gedacht)
    Ein Bild-Objekt hat u.a ein "imageData" Attribut - vom Typ Binary, welches die Bilddaten hält.

    Ich stelle nun alle vorhandenen Bilder in einer Tabelle dar. Ein NSImageView's data Binding ist gebunden an (einen ArrayController mit Bild-Objekten) - KeyPath: selection.imageData.

    Das funktioniert. Benutzer wählt ein Bild in der Tabelle und es wird noch zusätzlich im ImageView angezeigt. Nun möchte ich aber dem Benutzer auch ein Bild anzeigen, falls er mehrere Bilder markiert. Ich würde dann einfach zur Laufzeit aus den markierten Bildern ein einziges Bild erzeugen.

    Klar - das geht prima mit einem eigenem Controller, der die selection bzw. die selectedObjects des ArrayControllers observiert und auf Änderungen reagiert.

    Aber der direkte Weg wäre doch der folgende: Bei meiner Selektion mehrere Bilder ist die "selection" des ArrayControllers ein Proxy, der (falls er das darf) jedes setValue:forKey auf all "seine" Objekte (für die er eben der Stellvertreter ist) anwendet. Nun müsste es doch in diesem ganzen Bindingsurwald doch eine Möglichkeit geben wie man gezielt den Proxy beeinflussen kann.

    Oder gibts das nich?
    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].
  • Geht jetzt vielleicht etwas an deiner Fragestellung vorbei, aber ich glaube, ich würde das auf View-Ebene lösen, also vielleicht einen "MultiImageView" konstruieren, der per Bindings einfach das Array mit Bildern bekommt und dann das Layout übernimmt. Es ist ja mehr ein Darstellungs- als ein Steuerungsproblem, aber MVC ist natürlich immer auch Auslegungssache. ;)
  • Original von omz
    Geht jetzt vielleicht etwas an deiner Fragestellung vorbei, aber ich glaube, ich würde das auf View-Ebene lösen, also vielleicht einen "MultiImageView" konstruieren, der per Bindings einfach das Array mit Bildern bekommt und dann das Layout übernimmt. Es ist ja mehr ein Darstellungs- als ein Steuerungsproblem, aber MVC ist natürlich immer auch Auslegungssache. ;)


    Hmm. Okay.
    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].
  • Original von Tom9811
    Hmm, dennoch möchte ich das verstehen: Wieso möchtest du den Proxy verändern? Den gibt es für dich ja gar nicht!? Verstehe ich dich falsch?


    Ich realisiere das Ganze jetzt - wie von OMZ vorgeschlagen - im View direkt. Sobald ich wieder den Nerv dafür habe erkläre ich mal detailiert wieso ich da was verändern möchte.

    Sorry.
    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].
  • Original von Tom9811
    Okay, würde mich aber interessieren.

    BTW: Ich wollte dich ohnehin mal kontaktieren.

    Noch BTW: Mailst du eigentlich noch mit deiner POWERUSERIN?


    Sie hat mich (in positivem Sinne) mit Featurerequests zugeballert, die ich nun Stück für Stück realisiere. Wir sind so verblieben, dass sie sobald die Zeit reif ist eine Betaversion bekommt. :)

    Was hindert dich daran mich zu kontaktieren? :)
    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].
  • Sie hatte mir erzählt, dass der Mailverkehr lustig war. Schön, wenn das Ganze auch noch in einer Produktverbesserung mündet.

    Die Zeit … Eine Mail an dich ist etwas anderes als ein hier geschriebener Beitrag und bedarf meiner Aufmerksamkeit.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?