Kann man auch Methoden binden?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Kann man auch Methoden binden?

    Hallo Leute,

    ich habe folgendes Problem.

    ich habe in einer CoreDate Entity (ManagedObject * Country) ein Attribute (NSString * titelbild) welches den Namen eines Images beinhaltet.
    Das Image ist auf dem Filesystem an einer bestimmten Stelle abgelegt.
    Mein Ziel ist es, diese Image zu laden und per Binding in einer NSImageCell darzustellen.

    Meine Idee wäre es, die Class "Country.h um ein Attribute (NSImage * bild) zu erweitern, aber nicht im DatenModel, welche mit der Methode (NSImage *) loadImageWhiteName: (NSString*)name im Country.m beschrieben wird.

    Aber wie kann ich das Bildattribute "Binden" in der NSImageCell? .. und wie wird die Methode "loadImageWhiteName" aufgerufen?

    Kann das funktionieren, oder kann ich die Methode irgendwie direkt binden?

    Danke für eure Hilfe
    Chris
  • Das ganze sollte eigentlich über einen NSValueTransformer gehen. Du schreibst dann einen eigenen Transformer und gibst diesen beim Binding an. In dem Transformer bekommst Du dann den Filenamen und kannst das geladene Bild zurück geben.

    Gruß

    Claus

    P.S. das war aber verdammt knapp langsamer...
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Hallo,

    Kann das funktionieren, oder kann ich die Methode irgendwie direkt binden?

    … um noch Deine Frage zu beantworten.

    Ja, Du kannst an eine Methode binden.
    Die Frage ist, wann der berechnete Wert neu geladen werden soll.
    Das steuerst Du z.B. mit einer in Abhängigkeit geänderten Eigenschaft.

    Viele Grüße

    Quellcode

    1. ​-(NSImage*)someImage
    2. {
    3. // …
    4. NSImage *image = nil;
    5. if(image == nil)
    6. {
    7. return nil;
    8. }
    9. // …
    10. return image;
    11. // …
    12. }
    13. +(NSSet*)keyPathsForValuesAffectingSomeImage
    14. {
    15. // …
    16. NSMutableSet *set = [NSMutableSet set];
    17. if(set == nil)
    18. {
    19. return nil;
    20. }
    21. // …
    22. [set addObject:@"self.someProperty"];
    23. // …
    24. return set;
    25. // …
    26. }
    Alles anzeigen