2012-03-27 18 views
1

Ich weiß, das ist wahrscheinlich super einfach, aber ich habe eine harte Zeit durch waten Header-Dateien und könnte einige Hinweise verwenden.NSButton zeichnen alternatives Bild auf Klick

Ich habe einen NSPopUpButton definiert in einer Feder mit einem Menü daran angehängt. Ich habe es in der Feder definiert, um "Pull Down" -Typ ohne Pfeil zu sein (die Bilder, die mir von unserem Designer gegeben wurden, enthalten einen speziellen Pfeil, den er benutzen möchte). Es ist ein randloser Knopf. Die title ist richtig leer, obwohl ich die image und alternateImage eingestellt habe.

Was ich suchen, ist eine Konfiguration, entweder in der Feder, Datei Besitzer Implementierung, oder durch Unterklasse NSPopUpButton, mit dem ich das alternative Bild der Schaltfläche anzeigen kann (oder ein anderes Bild), während das Menü der Schaltfläche ist angezeigt. Stattdessen scheint das System das Bild der Schaltfläche zu dimmen.

Ich habe zahlreiche Nib Konfigurationen versucht, verschiedene Eigenschaften von NSButton und NSButtonCell, überschreiben mouseDown und mouseUp. Nichts, was ich tue, funktioniert.

Antwort

4

Wenn das Spielen mit der "Type" -Eigenschaft nicht hilft, müssen Sie möglicherweise die Zeichnung von NSButtonCell ableiten, um zu bekommen, was Sie wollen.

- (void)drawImage:(NSImage *)image withFrame:(NSRect)frame inView:(NSView *)controlView in NSButtonCell scheint vielversprechend.

+0

Hat sich als 'drawImageWithFrame: inView:' herausgestellt - danke! –

2

Ich denke, es ist benutzerdefinierte NSButtonCell Klasse Zeit; Ich kenne keine Möglichkeit, das Thema für diese Art von Schaltfläche zu überschreiben.

Die einzige Alternative wäre, einen normalen NSButton mit dem entsprechenden Bild zu verwenden und das Menü manuell an der richtigen Position anzuzeigen, was wahrscheinlich viel einfacher zu implementieren wäre.