2016-03-09 4 views
0

У меня есть NSSplitView, который содержит 2 бок о бок, а в правой панели - NSScrollView. У меня есть отдельный файл XIB, содержащий представление (inspectorView), что я хочу, чтобы вставить в представлении прокрутки, что я делаю вот так:Расширение documentView в NSScrollView

self.scrollView.documentView = inspectorView 

Это прекрасно работает, однако, когда я делаю Разделить Составная панель бит более широкий мой inspectorView не растет горизонтально, чтобы заполнить пространство. Использование -NSShowAllviews YES Я подтвердил правильность изменения вида прокрутки, однако inspectorView остается той же ширины, что и в случае, когда он был первоначально назначен scrollView.documentView. В этом моя проблема ... Я хочу, чтобы она расширялась, чтобы заполнить ширину разреза.

Я использую автозапуск для всего, и все мои представления создаются с использованием XIB. Единственное, что я делаю программно, это установить свойство documentView вида прокрутки.

Если бы я добавлял inspectorView в качестве подзаголовка, тогда легко добавить ограничения, которые говорят ему расти, чтобы заполнить родительский вид. Тем не менее, я не уверен, что эквивалентный механизм при установке documentViewNSScrollView. Какие-либо предложения? Благодарю.

Редактировать

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

inspectorView.autoresizingMask = .ViewWidthSizable 
inspectorView.translatesAutoresizingMaskIntoConstraints = true 
self.scrollView.documentView = inspectorView 

Обычно я устанавливаю translatesAutoresizingMaskIntoConstraints к false, не true. Во всяком случае, как я уже сказал, это похоже на работу, но я еще не убежден, что это справа. Мысли?

ответ

1

Вы можете просто прикрепить левые и правые края В документе-View для соответствующих ребер его надтаблицы - contentView (ых NSClipView экземпляра) обзора скроллинга:

// docView and scrollView defined elsewhere. 
// In both cases translatesAutoresizingMaskInConstraints is set to false. 

scrollView.documentView = docView 

let viewsDict = ["docView" : docView] 
scrollView.contentView.addConstraints(
    NSLayoutConstraint.constraintsWithVisualFormat("H:|[docView]|", 
     options: .allZeros, 
     metrics: nil, 
     views: viewsDict) 
) 

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

+0

Работает отлично. Благодарю. –