как this question, у меня есть NSView, который является contentView для NSWindow и содержит несколько подъячейков, расположенных вертикально один над другим. некоторые из них являются фиксированным размером, и некоторые из них могут быть расширены или свернуты с помощью кнопки раскрытия.как я могу получить содержимое окна для «обнимания» его подвид
Я хочу реализовать своего рода эффект «аккордеона», когда расширение или свертывание одного из подзонов делает все остальное настраиваемым и изменяет размер надстройки и окна соответственно.
действительно кажется, что нужно сделать это, установив правильный набор ограничений с автоматическим расположением, и теперь у меня есть первоначальный макет. но я не могу понять, как настраивать ограничения, чтобы супервизор автоматически менялся, чтобы обнять подпункты.
ОП в связанном выше вопросе никогда не получал ответа и предоставлял свое собственное решение, подобное тому, которое я начал реализовывать самостоятельно, но я думал, что его снова выброшу там, если есть какие-либо автомастеры которые знают трюк. похоже, должен быть способ заставить супервизор обнимать подпункты, используя автоматическую компоновку без необходимости вручную вычислять размеры подзонов и вручную изменять размер супервизора.
Кто-нибудь знает как?
Я удалил все ограничения в -awakeFromNib и программно создал те, которые мне нужны. Я по-прежнему убежден, что существуют ограничения между оконным фреймом и окном contentView, которые находятся за пределами моего/нашего элемента управления, которые бесполезны с вами в таких случаях. В любом случае решение, которое я поставил на github, указанное в моем ответе выше (с подклассом NSView, over-ridden intrinsicContentSize) работает нормально для меня. – pjv
Единственная ситуация, в которой у меня были проблемы с ограничениями между оконным фреймом и представлением содержимого, когда я включил панель инспектора для текстового представления, но это была какая-то ошибка, я полагаю. У меня почти такая же конфигурация, как у вас (своего рода вертикальный аккордеон, полностью реализованный с ограничениями, мне не пришлось реализовывать '-intrinsicContentSize', но мне приходилось играть с приоритетами. – skh