Modal NSWindow und Resize-Button

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

  • Modal NSWindow und Resize-Button

    Hallo,

    ein NSWindow welches mit [NSApp runModalForWindow:myController.window] auf gerufen wird, startet immer zentriert auf dem Bildschirm.
    Um die Position und die Größe dennoch speichern zu können verwende ich in dem Event windowDidBecomeMain: die Methode setFrameAutosaveName:

    Quellcode

    1. [self.window setFrameAutosaveName:@"myWindowSize"];


    Es funktioniert alles soweit. Die Größe und Position wird gespeichert und richtig beim Anzeigen verwendet.
    Eine Sache ist jedoch unschön. Wenn das Fenster maximiert und anschließend geschlossen wird, werden entsprechende Daten gespeichert. Beim erneuten Laden des Fenster wird es auch maximiert angezeigt. Beim Klicken auf den grünen "Resize" Button wird es jedoch nicht verkleinert. Es bleibt wie es ist. Ich hätte gerne, dass das Fenster beim Klicken auf Resize auf die eingestellte MinSize verkleinert wird.

    Weiß jemand wie das funktionieren könnte?
  • Ok, habe doch noch eine Lösung gefunden. Damit funktioniert es:

    Quellcode

    1. - (NSRect)windowWillUseStandardFrame:(NSWindow *)window defaultFrame:(NSRect)newFrame
    2. {
    3. if(window.frame.size.width != window.minSize.width && window.frame.size.height != window.minSize.height)
    4. {
    5. CGFloat xPos = NSWidth([[window screen] frame])/2 - window.minSize.width/2;
    6. CGFloat yPos = NSHeight([[window screen] frame])/2 - window.minSize.height/2;
    7. return NSMakeRect(xPos, yPos, window.minSize.width, window.minSize.height);
    8. }
    9. else
    10. return newFrame;
    11. }
    Alles anzeigen


    little_pixel: vielen Dank für deine Hilfe :)