• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

[Swift] Fensteranzahl limitieren

Verwirrter

Tokyo Rose
Registriert
09.02.15
Beiträge
66
Hallo zusammen,
ich habe Mir einen Window Controller als Einstellungsfenster erstellt (in einem Storyboard versteht sich), welches mit einem Menü-Objekt verbunden ist. Leider kann ich das Menü-Objekt beispielsweise 10 Mal drücken und es öffnen sich auch 10 Fenster.

Wie kann ich die Anzahl der Fenster limitieren, sodass man nicht die Möglichkeit hat, 10 Fenster oder mehr zu öffnen, sondern lediglich 1?

Danke an alle :)
 

Verwirrter

Tokyo Rose
Registriert
09.02.15
Beiträge
66
Es gibt so direkt keinen Code, da ich ich das Menü-Objekt mittels der control-Taste mit dem Window Controller verbunden habe. Das ganze war bisher also lediglich eine Sache im Storyboard.
 

KALLT

deaktivierter Benutzer
Registriert
12.11.08
Beiträge
1.523
Ich nehme an, du hast dafür eine NSStorboardSegue vom Typ ’Show’ vom Menüeintrag auf das Fenster gezogen? Standard wird dann ein neues Fenster instanziert. Du kannst im NSWindowController das Attribut ‘Presentation’ auf ‘Single’ setzen, damit immer nur ein Fenster instanziert wird.
 

Verwirrter

Tokyo Rose
Registriert
09.02.15
Beiträge
66
Ich nutze eine Storyboard-Reference, das hätte ich vielleicht erwähnen sollen ... Jedenfalls ändert das nicht direkt die Limitierung. Wie mache ich das ganze denn am besten, wenn ich eine Storyboard-Reference habe? Oder ist es in dem Fall vielleicht sinnvoller, das Menü-Objekt zu deaktivieren?

EDIT: Das ganze lässt sich einfach folgendermaßen lösen: Man klickt auf den Storyboard-Segue (den Strich zwischen Menü-Objekt und der Reference) und dann auf "Show the Attributes Inspector" in der rechten Leiste. Dort setzt man dann "Kind" auf "Modal".

Ich hoffe, dies ist eine "gültige" Lösung.

Danke und LG :)
 
Zuletzt bearbeitet:

KALLT

deaktivierter Benutzer
Registriert
12.11.08
Beiträge
1.523
Ich würde den Segue-Typ nicht ändern. ‘Modal’ ist dafür nicht gedacht. Du kannst das schon an der Animation erkennen, denn ein Modal-Segue springt hervor, während ein Show-Segue nur eingeblendet wird. Besser wäre es wenn du dich an Apples Vorgaben hältst und nicht zwingend versuchst um das gewünschte Ergebnis durch derartige Umwege zu erreichen. Den Segue kannst du in der Unterklasse des ersten NSWindowController mit shouldPerformSegueWithIdentifier(identifier:sender:) konfigurieren.
 

Verwirrter

Tokyo Rose
Registriert
09.02.15
Beiträge
66
Also wie meinst Du das jetzt? Das mit der Animation ist Mir auch aufgefallen, aber soll ich den Segue zur Reference wieder auf "Show" setzen?
So habe ich halt den Vorteil, dass das Menü-Objekt gleich mit deaktiviert wird, wenn das Fenster geöffnet wird und so die Fensteranzahl limitiert bleibt.
 

KALLT

deaktivierter Benutzer
Registriert
12.11.08
Beiträge
1.523
So habe ich halt den Vorteil, dass das Menü-Objekt gleich mit deaktiviert wird, wenn das Fenster geöffnet wird und so die Fensteranzahl limitiert bleibt.

Es ist aber leider kein Standardverhalten bei Einstellungsfenstern. Ich persönlich möchte bei so etwas konsequent bleiben. Natürlich kannst du das trotzdem tun, aber es gibt eben auch andere Möglichkeiten. Anscheinend funktioniert die von mir beschriebene Methode nicht mit NSStoryboardReference, aber innerhalb eines NSStoryboard funktioniert es.
 

Verwirrter

Tokyo Rose
Registriert
09.02.15
Beiträge
66
Aber einen konkreten Ansatz für die Version mit Reference hast Du nicht, oder etwa doch?