Ich arbeite an einer Mac-Anwendung, und ich möchte, dass das erste Fenster im maximierten Zustand ist, wie wenn du die grüne Taste mit dem Pluszeichen drückst. Ich will nicht, dass es Vollbild ist.
Eine App im gezoomten Zustand ist nicht dasselbe wie "maximiert". Das grüne Plus-Symbol zeigt Zoom an, was "die für diesen Inhalt geeignete Größe" bedeutet. In einigen Anwendungen ist das der sichtbare Rahmen (wie Eric D. diskutiert), aber es kann fast alles sein. Versuchen Sie beispielsweise, ein Safari-Fenster zu vergrößern.
Angenommen, Sie möchten wirklich "maximiert" und nicht "zoomen", dann ist Eric auf dem richtigen Weg, aber es kann besser gemacht werden. Zuerst sollten Sie den Bildschirm des Fensters verwenden, wenn es einen hat. Außerdem sollten Sie die Größenänderung des Fensters während des Starts nicht animieren (da dies beim Start peinlich aussehen kann).
%Vor% Sie sollten in Erwägung ziehen, ein NSWindowController
zu verwenden, um dies zu verwalten, anstatt es in den Anwendungsdelegaten zu legen. In diesem Fall können Sie dies in windowDidLoad
setzen. Fenster-Controller sind ein ziemlich übliches Werkzeug in AppKit (im Gegensatz zu View-Controllern, die historisch nicht so üblich sind).
Wenn Sie eigentlich Zoom-Verhalten wünschen, machen Sie sich mit der NSWindowDelegate
Methode windowWillUseStandardFrame(_:defaultFrame:)
vertraut. Normalerweise sollten Sie zoom(_:)
nicht direkt beim Start aufrufen, da dies animiert, aber die Logik, die Sie im Delegaten verwenden, sollte zur Berechnung Ihres Rahmens verwendet werden. Stellen Sie sicher, dass Sie Ihren Rahmen so anpassen, dass er auf dem Bildschirm des Fensters angezeigt wird, wenn er einen Bildschirm hat, anstatt auf dem Hauptbildschirm.
Im Idealfall sollten Sie das letzte Bild, das der Benutzer verwendet, wirklich beachten, anstatt es zum sichtbaren Bild zu zwingen. Das nennt man frameAutosave
in Cocoa, wenn du das mehr erforschen willst. Ein Fenster-Controller hilft Ihnen, das etwas automatisch zu verwalten, wenn Sie einfach einen Namen für die automatische Speicherung im Interface Builder festlegen. (Obwohl es etwas kompliziert ist, den Frame beim ersten Start zu berechnen, um den sichtbaren Frame zu erhalten, wird er nicht vollständig automatisch sein.)
Denken Sie sorgfältig darüber nach, bevor Sie Ihren Standardrahmen auf jeden Fall zum sichtbaren Rahmen machen. Das kann auf großen Monitoren sehr groß sein (es gibt immer noch 30 "Cinema Displays, aber selbst auf einer 27" kann es ziemlich überwältigend sein). Manchmal ist das abhängig von Ihrer App, aber ich finde oft, dass es sich lohnt, eine maximale anfängliche Größe zu definieren (während der Benutzer es größer machen kann).
Hi Leute, ich schätze deine Hilfe sehr.
Ich arbeite an einer dokumentbasierten Mac-Anwendung. Ich habe den Code, den Sie in makeWindowControllers () der Klasse Document bereitgestellt haben, und es funktioniert wie ein Charme.
Vielen Dank. Hier ist der Code, den ich benutze.
%Vor%