Ich habe diese App, die ein %code% als Root verwendet und ein %code% als detailViewController verbunden hat.
Diese App wird mit 1024 x 768 gestartet. Der linke Bereich sollte bei 320x768 und der rechte Bereich (wo der tabViewController ist) bei 704x768 starten.
Ab 10 Mal starte ich diese App, 9 Mal wird sie mit der falschen Größe gestartet (ca. 500x500). Andere seltsame Sache ist, dass diese App nicht skalierbar sein sollte, aber wenn Sie die Maus in der Nähe des Fensterrahmens bewegen, sehen Sie eine Cursor-Anzeige zum Skalieren.
Ich möchte, dass es in der richtigen Größe startet und keine skalierbare Option hat.
Diese beiden Einstellungen sind im Interface Builder enthalten, werden aber ignoriert.
Sie können hier ein Beispielprojekt herunterladen, das das Problem veranschaulicht, hier . Stoppen und führen Sie das Projekt mehrmals aus, um das Problem zu sehen.
Wie löse ich das?
Ich kann nicht sicher sagen, was das Problem verursacht, aber eine Möglichkeit, es zu lösen, ist, einige Einschränkungen hinzuzufügen. Mit dem Interface Builder können Sie die Standard-NSView-Instanzen, die in das linke und das rechte Fenster der geteilten Ansicht eingefügt werden, nicht einschränken. Daher müssen Sie Ihre eigenen hinzufügen. Der Screenshot unten wird von deiner Demo genommen, aber nachdem ich folgendes gemacht habe:
Wenn ich die App lade, sind beide Splits sichtbar, der Teiler bewegt sich nicht und das Fenster kann nicht verkleinert werden.
Obwohl Einschränkungen eine Möglichkeit darstellen, dieses Problem zu lösen, liegt der Grund des Problems in etwas unerwartetem Verhalten im Interface Builder. Wenn Sie ein Objekt %code% auf die Zeichenfläche ziehen und es zum Ziel der Beziehung %code% des Fenster-Controllers machen, wird der %code% outlet des Split-View-Controllers nicht tatsächlich gesetzt. Eine Konsequenz davon scheint zu sein, dass, wenn Sie die App laden, der Teiler direkt auf einer Seite erscheint. Um dies zu beheben, setzen Sie den oben genannten View-Ausgang so, dass er auf die Split-Ansicht zeigt:
Ich habe ein Demo-Projekt mit einem Setup erstellt, das dem in der Demo-App des Fragestellers ähnelt.