NSToolbarItem animiertes image?

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

  • NSToolbarItem animiertes image?

    Hallo,

    in meinem aktuellen Projekt gibt es eine Toolbar mit einem Refresh-Button. Sobald er betätigt wird, startet die (asynchrone) Aktualisierung der Daten. Während dieser Zeit soll eine GIF-Animation auf dem Refresh-ToolbarItem angezeigt werden. Nachdem ich mehrere Varianten erfolglos probiert habe, kann mir ja vielleicht hier jemand auf die Sprünge helfen. :)

    1. Versuch: Hier wird das Bild korrekt gesetzt, bewegt sich jedoch nicht.

    Quellcode

    1. ​[toolbarItem setImage:gifImage];


    2. Versuch: Zwar funktioniert diese Lösung optisch einwandfrei, leider sendet das Objekt nun aber keine Action mehr, wenn es geklickt wird.

    Quellcode

    1. // Set animating refresh-image
    2. NSImageView *iv = [[NSImageView alloc] init];
    3. iv.image = [NSImage imageNamed:@"refreshing"];
    4. [self.toolbarItem setView:iv];


    3. Versuch: .. keine Änderung zu Versuch 2

    Quellcode

    1. // Set animating refresh-image
    2. NSImageView *iv = [[NSImageView alloc] init];
    3. iv.image = [NSImage imageNamed:@"refreshing"];
    4. [self.toolbarItem setView:iv];
    5. [self.toolbarItem setTarget:self];
    6. [self.toolbarItem setAction:@selector(refreshList:)];


    Stehe gerade auf dem Schlauch. Die einzige Lösung, die mir noch einfällt ist, das Protokoll NSToolbarDelegate zu implementieren, und mich manuell um jedes einzelne ToolbarItem zu kümmern. Dann könnte ich "das funktionierende" austauschen und später wieder neu einsetzen. Es wäre jedoch schöner, wenn ich eleganter zu der Lösung käme. Hat jemand eine Idee?


    Vielen Dank,
    STEX

    PS. 1rst Post :thumbup:
  • Hallo,

    leider habe ich die ursprüngliche Lösung nicht weiter umsetzen können. Daher habe ich zu einer "Not"-lösung gegriffen und die einzelnen Bilder des GIFs als PNG extrahiert. Ein Timer wechselt jetzt das NSImage des Toolbar Buttons aus, eben in der Geschwindigkeit der GIF Animation. Falls jemand mal über eine schönere Lösung für das Problem stolpert, würde ich mich sehr über eine Rückmeldung freuen.


    STEX
  • STEX schrieb:

    Stehe gerade auf dem Schlauch. Die einzige Lösung, die mir noch einfällt ist, das Protokoll NSToolbarDelegate zu implementieren, und mich manuell um jedes einzelne ToolbarItem zu kümmern. Dann könnte ich "das funktionierende" austauschen und später wieder neu einsetzen. Es wäre jedoch schöner, wenn ich eleganter zu der Lösung käme. Hat jemand eine Idee?

    Du kannst das ToolbarItem ja auch auf einen View aufbauen. Da könntest Du dann während die Aktualisierung läuft einen NSProgressIndicator (NSProgressIndicatorSpinningStyle) als Subview drauf packen.