2016-01-22 1 views
0

Я использую раскадровки для создания приложения OS X. Он устроен таким образом, что мой главный контроллер окна содержит в качестве контроллера представления содержимого NSSplitViewController.Разрыв в высоте между NSSplitView и его супервидом - откуда он?

Иногда, однако, когда я открываю приложение, существует разрыв между верхней точки зрения раскола и нижней части строки заголовка окна:

app with gap

Этот разрыв уходит, как только как изменить размер окна.

Я захватил иерархию представлений, и я увидел эти ограничения автоматического макета. Один, в частности выглядело интересным:

view debugger

Интересно! Но я не могу найти ни одного места в своем приложении, которое задает эти ограничения автоматического макета, ни в окне, ни в режиме разделения.

Когда окно изменяет размер, ограничение выглядит следующим образом (это на NSThemeFrame):

enter image description here

Это ограничение не серый цвет, если я смотрю на это с NSSplitView:

enter image description here

Разница в 22 имеет смысл; это высота самой строки заголовка.

Что я могу сделать, чтобы узнать, что заставляет его вести себя так?

ответ

0

Проблема закончилась тем, что мне нужно было начать с наизнанку. Сначала я проверил размеры, указанные мной в кадре, для каждого из видов NSSplitView. Как только я получил эти размеры, я пошел в рамку NSSplitView и соответствующим образом установил размеры.

Затем я подошел к раме NSWindow и обеспечил, чтобы его размеры были как минимум равны размерам NSSplitView. Если он больше, не проблема, но если он меньше, то окно открывается.

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

Смежные вопросы