Использование Autolayout с расширением NSTextViews
Мое приложение состоит изNSScrollView
чье представление документа содержит количество вертикально сложенныхNSTextViews
& # X2014; каждый из которых изменяет размеры в вертикальном направлении по мере добавления текста.
В настоящее время все это управляется в коде.NSTextViews
изменить размер автоматически, но я наблюдаю их изменение сNSViewFrameDidChangeNotification
пересчитать все их происхождение, чтобы они не перекрывались, и изменить размер своего суперпредставления (представление документа с прокруткой), чтобы они все подходили и могли быть прокручены.
Кажется, что это был бы идеальный кандидат для автопрокладки! Я поставилNSLayoutConstraints
между первым представлением текста и его контейнером, последним представлением текста и его контейнером и каждым представлением текста между собой. Затем, если какой-либо текстовый вид увеличивается, он автоматически «сдвигает» происхождение текстовых представлений под ним удовлетворяет ограничениям, в конечном итоге увеличивая размер представления документа, и все будут довольны!
За исключением того, что, кажется, нет никакого способа сделатьNSTextView
автоматически увеличиваться при добавлении текста в макет на основе ограничений? Используя точно такой жеNSTextView
который автоматически расширяется при вводе текста ранее, если я не указываю ограничение для его высоты, он по умолчанию устанавливается в 0 и не отображается. Если я укажу ограничение, даже неравенство, например & gt; = 20, оно останется в этом размере и не будет расти при добавлении текста.
Я подозреваю, что это связано с реализацией NSTextView-intrinsicContentSize
, который по умолчанию возвращает(NSViewNoInstrinsicMetric, NSViewNoInstrinsicMetric)
.
Итак, мои вопросы: если я подклассыNSTextView
вернуть более значимыйintrinsicContentSize
Исходя из макета моего текста, будет ли моя автопереметка работать так, как ожидалось?
Любые указатели по реализацииintrinsicContentSize
для вертикально изменяющегося размера NSTextView?