NSWindow (aus Xib) "starten"/"laden" (versus "close")

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

  • NSWindow (aus Xib) "starten"/"laden" (versus "close")

    Hallo Forum,

    für die Bearbeitung bestimmter Einstellungen habe ich mit IB ein NSWindow (eigentlich ein NSPanel) erstellt.

    Mittels "orderOut" bzw. "makeKeyAndOrderFront" kann ich das (beim Start unsichtbare) Fenster ein- und ausblenden.

    Ich würde es aber lieber "closen" (hier gibt es wohl eine Methode, die auch mit dem Close-Symbol auto-connected ist) und sagen wir "starten" oder "laden".
    Die init-Methoden für ein Window scheinen aber leere WIndows zu erstellen.
    Wie initialisiere (lade/starte) ich denn ein Window mit den Einstellungen aus IB?

    Im "Window Programming Guide" habe ich dazu leider nichts gefunden.

    Vielleicht gibt es auch vorgefertigte Muster für solche Fenster (hier Hinterlegung von Userdaten für einen Login in einen Webdienst).

    Danke und VG Thomas
  • Danke - das klingt interessant. Ein erster Blick in Doku zu initWithWindowNibName zeigt mir, dass ich wohl erst mal etwas umbauen muss:

    Im Moment habe ich mehrere Windows in der Main Nib und keine Window Controller. Ich sollte wohl mein Pref-Windows in eine separate Nib packen und dem Konstrukt einen Window Controller spendieren.


    Haupterkenntnis: Eine Nib mit Fenster kann man wohl programmatisch laden und entladen, ein einzelnes Fenster nach meinem jetztigem Wissenstand nicht.
    Und: Ein Window Controller ist das richtige Instrument dafür :)


    Sciherheitshalber: So ein Preferences-EIngabefenster läßt man doch nicht während er gesamten Laufzeit stehen und versteckt / zeigt es nur bei Bedarf? Oder macht man so was (das Fenster wird nur selten, wenn überhaupt benötigt)?

    Danke und Grüße
  • ja, grundsätzlich ist es richtig, jedem Fenster ein Nib zu spendieren. Und wenn du schon dabei bist, bitte das Ganze in einen Window-Controller. Du dankst es mir später. Ursprünglich ging es übrigens weniger um das Entladen. Denn in der Tat, siehe wrongspot, wird ein einmal benutztes Fenster bald wieder benutzt. Es ging mehr um das gar nicht erst laden.

    Heutzutage sind Speicher- und CPU-Anforderungen natürlich kein Problem mehr. Aber man sollte es dennoch so machen, da du einfach besser kapselst. So kannst du mit eigenen Window- und View-Controllern die Funktionalität eines Fensters bzw. Views passgenau in den Controller bauen. Kein Mischmasch mehr.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?