У меня есть тестовое представление, внутри которого есть метка (NSTextField), и я программно добавляю ограничение пропорциональной ширины, чтобы мой тестовый вид занимал 1/3 ширины своего суперпредставления (представление контроллера основного вида). Когда я устанавливаю короткий заголовок, например, «короткий текст» для метки, мой тестовый вид отображается правильно (он занимает 1/3 ширины суперпредставления). Однако, когда я пытаюсь установить длинное название, например, «длинный длинный длинный длинный длинный длинный текст» для метки, суперпредставление увеличивается, и метка показывает полный текст. Я ожидаю, что размер суперпредставления не должен изменяться, мой тестовый вид должен занимать 1/3 ширины, а моя метка должна быть усечена, чтобы показать "..." в хвосте.
Тестовый вид отображается правильно с коротким текстом:

Тестовое представление отображается некорректно с длинным текстом:

Мои коды для программного добавления ограничений для тестового просмотра:
TestView *testView = [[TestView alloc] initWithFrame:NSMakeRect(5, 10, 120, 30)];
NSString *title = @"long long long long long long text";
//NSString *title = @"short text";
[testView setTitle:title];
[self.view addSubview:testView];
float multiplierWidth = (float) 1/3;
float multiplierLeading = (float) 1/3;
NSLayoutConstraint *widthConstraint = [NSLayoutConstraint constraintWithItem:testView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:testView.superview attribute:NSLayoutAttributeWidth multiplier:multiplierWidth constant:0.0];
NSLayoutConstraint *leadingConstraint = [NSLayoutConstraint constraintWithItem:testView attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:testView.superview attribute:multiplierLeading==0?NSLayoutAttributeLeading:NSLayoutAttributeTrailing multiplier:multiplierLeading==0?1.0:multiplierLeading constant:0.0];
NSLayoutConstraint *topConstraint = [NSLayoutConstraint constraintWithItem:testView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:testView.superview attribute:NSLayoutAttributeTop multiplier:1.0 constant:testView.frame.origin.y];
NSLayoutConstraint *heightConstraint = [NSLayoutConstraint constraintWithItem:testView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:testView.frame.size.height];
[testView setTranslatesAutoresizingMaskIntoConstraints:NO];
[testView addConstraint:heightConstraint];
[testView.superview addConstraint:topConstraint];
[testView.superview addConstraint:leadingConstraint];
[testView.superview addConstraint:widthConstraint];
Вот пример проекта: Пример проекта