NSScrollView неверный размер контента - PullRequest
1 голос
/ 20 ноября 2010

У меня есть NSScrollView, который является родителем пользовательского подкласса NSView.Подкласс использует метод NSScrollView contentSize для размещения своих подпредставлений.

Проблема заключается в том, что при первом запуске NSScrollView сообщает, что contentSize неверен.Он сообщает, что размер на 15 пикселей больше, чем должен быть (ширина скроллера).Поэтому мне кажется, что он возвращает contentSize без учета ширины прокрутки;однако, как только я отрегулирую рамку представления прокрутки (путем изменения размера и т. д.), размер содержимого будет отображен правильно.Кажется, это просто проблема при первом запуске.

Следует ли сообщать об этом как об ошибке, и есть ли хорошие решения для этого?Я мог бы использовать грязный способ выполнения проверки во время компоновки, чтобы увидеть, вызывается ли метод в первый раз, а затем вычесть 15px из размера содержимого, но если есть что-то лучшее, это будет оценено.

Ответы [ 3 ]

2 голосов
/ 22 августа 2011

Я только что столкнулся с подобной проблемой, и способ, которым я решил ее, состоял в том, чтобы наблюдать уведомление NSViewFrameDidChangeNotification в представлении содержимого представления прокрутки (в вашем случае пользовательский NSView).

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

0 голосов
/ 24 ноября 2013

Вы используете опцию, чтобы автоматически скрывать / показывать полосы прокрутки?

0 голосов
/ 20 ноября 2010

Когда вы проверяете размер контента? Это происходит, когда создается представление вашего файла из файла пера, или после того, как оно полностью разархивировано?

Что я, вероятно, сделаю, это вызову вашего метода макета из -viewDidMoveToWindow: или -awakeFromNib

...