J'ai une seule fenêtre avec une seule vue personnalisée dedans, et je veux que la vue personnalisée redimensionne avec la fenêtre de sorte qu'elle la remplisse entièrement à tout moment. Si j'écris :
NSView *contentView = [self.window contentView];
CustomView *customView = [[CustomView alloc] initWithFrame:[contentView bounds]];
[contentView addSubview:customView];
[contentView addConstraint:
[NSLayoutConstraint constraintWithItem:customView
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:contentView
attribute:NSLayoutAttributeWidth
multiplier:1
constant:0]];
[contentView addConstraint:
[NSLayoutConstraint constraintWithItem:customView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:contentView
attribute:NSLayoutAttributeHeight
multiplier:1
constant:0]];
Alors la fenêtre ne me permet pas de la redimensionner.
Si j'ajoute:
[customView setTranslatesAutoresizingMaskIntoConstraints:NO];
Alors la vue personnalisée n'apparaît pas (drawRect:
semble ne jamais être appelé). J'ai essayé différentes façons (y compris le format visuel @"|[customview]|"
) mais je rencontre toujours les mêmes problèmes. Je sais que cela pouvait être fait avec l'ancien système de redimensionnement automatique, avec :
[customView setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
mais je veux utiliser le système de disposition automatique Cocoa, et je veux l'utiliser pour des cas plus compliqués (comme plusieurs vues personnalisées qui remplissent toujours la fenêtre).
Est-ce que quelqu'un sait ce qui ne va pas et comment je devrais utiliser le système de disposition automatique pour obtenir le résultat que je veux?