NSWindow: Ändern Sie die Positionen der Fensterschaltflächen

9

Ich möchte eine Titelleiste fälschen (größer und mit einer anderen Farbe), also ist mein Weg bis jetzt folgender:

Ich habe ein NSView direkt unterhalb der Titelleiste hinzugefügt und dann die Titelleiste mit diesem Code transparent gemacht:

%Vor%

Der nächste Schritt ist, dass ich die NSView subclassiert habe, um einige Zeichnungsmethoden (Hintergrund usw.) und vor allem den Code hinzuzufügen, so dass ich das komplette NSView zum Verschieben des Fensters verwenden kann (daher verwende ich diesen Code: Ссылка )

Das ist das Ergebnis:

Als nächstes möchte ich die Ampelknöpfe in dieser neuen Titelleiste vertikal zentrieren. Ich weiß, dass ich mit self.window.standardWindowButton(NSWindowButton.CloseButton) (zum Beispiel) auf die Buttons zugreifen kann. Aber das Ändern der frame.origin einer der Schaltflächen hat keine Auswirkung.

Wie kann ich den Ursprungswert der Tasten ändern?

AKTUALISIEREN

Ich habe festgestellt, dass die Größenänderung des Fensters die Schaltflächen neu anordnet. Jetzt habe ich entschieden, die Buttons als Unteransichten zu meiner falschen Titelleiste hinzuzufügen, weil das Verschieben des Ursprungs in der Titelleiste die Buttons abschneidet (es ist offensichtlich auf die Titelleiste beschränkt).

Das funktioniert, aber seltsamerweise bleibt der Mouseover-Effekt der Tasten in der Titelleiste erhalten. Schau dir diesen Bildschirm an:

Das ist eigentlich mein Code:

%Vor%     
Lupurus 06.05.2015, 19:13
quelle

0 Antworten

Tags und Links