Изменение размера NSTableView неожиданно - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть NSTableView на основе ячеек, который неожиданно изменяет размер по вертикали, поскольку я продолжаю добавлять другие элементы в таблицу.Я реализовал ограничения, но они явно нарушаются.

Не уверен, связано ли это каким-либо образом, но у меня, кажется, нет этой проблемы, когда NSTableView находится в обычном NSWindow - проблемапроисходит только тогда, когда NSTableView находится в NSPopover (я понимаю, что у NSPopover есть окно, т.е. myPopover.contentViewController.view.window).

Я пытался несколько вещей, чтобы остановить автоматическое изменение размера, но ничего не происходитза работой.

Вот что произойдет, если я не наложу ограничение высоты на NSSegmentedControl ниже NSTableView (оно сжимается, как ни странно, из-за изменения размера NSScrollView, а не NSTableView):

enter image description here

Это то, что происходит, если я накладываю ограничение высоты на ограничение NSSegmentedControl (NSScrollView (height = 155), а размеры NSScrollView и NSTableView изменяются.):

enter image description here

Вот мои ограничения:

enter image description here

1 Ответ

0 голосов
/ 28 февраля 2019

Ну, я вроде как это исправил.Добавив следующий код, я могу предотвратить изменение размера NSTableView, как показано в GIF-файлах исходного вопроса.

myTableView.superview.translatesAutoresizingMaskIntoConstraints = NO;

Хотя приведенный выше код предотвращает неожиданное изменение размера NSTableView, я по-прежнему вижу ошибку, записанную вНарушено ограничение высоты NSScrollView:

[Layout] Unable to simultaneously satisfy constraints:
...
Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x60000212f840 NSScrollView:0x600003d01680.height == 155   (active)>


Я могу избавиться от этой ошибки, изменив ограничение высоты NSScrollView (показанное на последнем снимке экрана в исходном вопросе) с (высота = 155) на (высота> = 155).Однако я все же предпочел бы, чтобы высота NSScrollView и NSTable оставалась равной 155.

Если у кого-то еще нет ответа, я полагаю, что буду использовать это исправление, пока не будет найдено лучшее решение.

Для тех, кто интересуется, я разработал это решение после прочтения этого: https://www.hackingwithswift.com/example-code/uikit/how-to-stop-auto-layout-and-autoresizing-masks-conflicting-translatesautoresizingmaskintoconstraints

...