Ich habe Probleme, meine Subviews korrekt mit Auto-Layout zu skalieren. Um meinen Standpunkt zu verdeutlichen, habe ich ein minimalistisches Beispiel zusammengestellt.Cocoa Autolayout und Größenanpassung von Subviews
Zuerst habe ich einen neuen NSViewController erstellt und eine Unteransicht hinzugefügt (in diesem speziellen Fall eine NSTextView) und Autolayout-Einschränkungen hinzugefügt.
Ich habe dann eine benutzerdefinierte Ansicht meiner MainMenu.xib und auch für die Automatische Anordnung Einschränkungen einrichten.
Schließlich habe ich eine Instanz meiner Ansicht-Controller und legte seine Ansicht in meiner benutzerdefinierten Ansicht.
#import "AppDelegate.h"
#import "MyViewController.h"
@interface AppDelegate()
@property (weak) IBOutlet NSView *customView;
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
MyViewController *myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[self.customView addSubview:myViewController.view];
myViewController.view.frame = self.customView.bounds;
}
@end
Seit „Autoresizes Subviews“ in beiden xib Dateien aktiviert ist, würde ich die NSTextView, um die Größe zu erwarten, wenn ich das Hauptfenster ändern. Es bleibt jedoch einfach an Ort und Stelle. hier
Was bin ich? Das hat mich seit ein paar Tagen verwirrt.
Danke, Michael Knudsen
Wenn Sie bei der ersten Screenshot in meinem Beitrag sehen, scheint es, dass die NSTextView (oder genauer gesagt die NSScrollView in denen sie eingebettet sind) ist eine Unteransicht der IBOutlet Ansicht meiner Ansicht-Controller. Die Einschränkungen bezüglich der automatischen Auslagerung beziehen sich auf diese Ansicht, richtig? –
Ich habe tatsächlich damit experimentiert, es programmatisch zu machen, aber irgendwie hat mich das daran gehindert, irgendetwas zu verändern. Es war einfach nicht möglich, die Fensterecken/Seiten zu "greifen", nachdem eine Ansicht programmatisch hinzugefügt wurde. Rate mal, es ist Zeit, zu der Dokumentation zurückzukehren und es noch einmal zu versuchen. –
Ja, die automatischen Layouteinschränkungen beziehen sich auf die * Ansicht * (dh die übergeordnete Ansicht) der Textansicht. – SevenBits