Ich möchte die Höhe einer NSWindow Titelleiste ändern.
Hier sind einige Beispiele:
Und ...
Ich könnte eine NSToolbar verwenden, aber das Problem ist, dass ich Ansichten nicht sehr hoch platzieren kann (Beispiel: Ich kann das segmentierte Steuerelement nicht höher platzieren als im Bild, da immer noch die Titelleiste vorhanden ist)
Wenn ich die Titelleiste entferne, kann ich keine NSToolbar platzieren und das Fenster ist nicht beweglich.
Haben Sie irgendwelche Ideen?
Das ist viel einfacher als man denken würde. Ich bin auch auf die Suche nach etwas ähnlichem für meine App gegangen.
Echte App Store-App:
Meine App Store-App sieht ähnlich aus:
Kein Respekt vor INAppStoreWindow, es ist eine sehr gute Implementierung und solide. Der einzige Nachteil, den ich daraus ziehen konnte, war, dass es viel Zeichnungscode mit fest codierten Einstellungen für die TitleBar-Farben gab, die Apple jederzeit anpassen kann.
Also hier ist, wie ich es gemacht habe:
A) Erstellen Sie ein Standardfenster mit einer Titelleiste, Schließen, Minimieren, Schatten, Größe ändern, Vollbild - Primäres Fenster alle gesetzt. Hinweis: Sie benötigen weder ein strukturiertes Fenster noch sollten Sie einen Titel festlegen
B) Fügen Sie als nächstes eine Standardsymbolleiste mit diesen Einstellungen hinzu:
Entfernen Sie alle Toolbar-Elemente und fügen Sie nur diese in der folgenden Reihenfolge hinzu
NSSegmentControl (51 x 24) - | Flexibler Raum | - NSSearchField (150 x 25)
C) Fügen Sie in Ihrer Inhaltsansicht direkt unter der Symbolleiste einen NSButton-Satz in Normalgröße wie folgt hinzu:
Ok, ziemlich einfach, oder?!
In Ihrem Window Controller oder App-Delegat .... Richten Sie IBOutlet (s) zu Ihren NSButton (s) ein
Hinweis: Denken Sie daran, Ihr IBOutlet im Interface Builder
zu verbindenOk, hab keine Angst, wir müssen jetzt ein bisschen Code schreiben:
In watchFromNib oder windowDidLoad ....
Der Code würde also ähnlich aussehen:
%Vor%Das ist es! Sie können Ihre Steckdose verwenden, um Ihre Taste zu aktivieren / deaktivieren, ein Maskenbild zu erstellen, wenn Sie ausgewählt sind, die Symbolleiste zu aktivieren / deaktivieren oder sogar alles auszublenden und einen Fenstertitel hinzuzufügen. All dies macht keine Sorgen, wenn Apple ihre Standard-Window Titlebars ändert.
P.S. In diesem Posting wurden keinerlei private Frameworks verwendet!
Sie müssten NSWindow
ableiten und eine benutzerdefinierte Fensterrahmenzeichnung erstellen. Es geht nicht nur um eine Titelleiste. Es handelt sich um den gesamten Fensterrahmen (Sie können also, wenn Sie möchten, die Knöpfe zum Schließen / Minimieren / Zoomen ganz unten einfügen).
Ein guter Anfang ist bei "Cocoa with love" Website .
Es gibt ein paar neue Lösungen basierend auf INAppStoreWindow und ohne Warnung und Log-Nachricht, für jeden, der die Höhe von NStetitbar ändern möchte, die Position der Ampel ändern, ein Element (zB einen NSbutton) auf NStellebar hinzufügen und ändern möchte Position, überprüfen Sie bitte unten.
WAYWindow: Ссылка
NStitlebar_with_item: Ссылка