Es gibt einige große Änderungen in 10.12, aber meiner Meinung nach ist das größte das neue Auto-Layout-System (oder modifizierte / neu geschriebene alte ... wer weiß). Ich habe ein einfaches Projekt vorbereitet, um das Problem zu demonstrieren. Es bezieht sich auf das Kollabieren eines Split-View-Objekts über eine Schaltfläche. Es passiert nur am 10.12. Alles, was Sie tun müssen, ist das Projekt zu kompilieren und klicken Sie auf die Schaltfläche. Ein Fehler wird angezeigt:
2016-10-04 15: 10: 28.284296 test-12 [64932: 7425277] [Layout] Erkannte fehlende Einschränkungen für. Es kann nicht platziert werden, da nicht genügend Einschränkungen vorhanden sind, um die Größe und den Ursprung vollständig zu definieren. Fügen Sie die fehlenden Einschränkungen hinzu, oder legen Sie translatedAutoresizingMaskIntoConstraints = YES fest, und die Einschränkungen werden für Sie generiert. Wenn diese Ansicht manuell auf macOS 10.12 und höher erstellt wird, können Sie wählen, [Super-Layout] nicht von Ihrer Überschreibung aufzurufen. Setzen Sie einen Breakpoint auf DETECTED_MISSING_CONSTRAINTS, um zu debuggen. Dieser Fehler wird nur einmal protokolliert.
Nach dem Setzen eines Haltepunktes können wir herausfinden, dass die problematische Ansicht ist:
%Vor%Bin ich völlig falsch oder gibt es ein definitives Problem mit 10.12? Und bitte beraten Sie, wie Sie solche Fehler nach Möglichkeit vermeiden können.
Das Projekt kann von github
heruntergeladen werdenNochmals vielen Dank für die Hilfe.
Ich. Nikolov
Ich habe das gleiche Problem mit dem automatischen Layout, und ich habe eine Problemumgehung für mein Projekt gefunden. Nach dem Hinzufügen der Teilansicht mit ihren Beschränkungen, rufe ich das Fenster auf "Layout". Leider mache ich das nach jedem "add" Aufruf, sonst wird das System die hässliche Nachricht erneut werfen. Es funktioniert für mich und ich rufe es nur während der Initialisierung an.
%Vor%Tags und Links macos-sierra