2010-11-19 2 views
1

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

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

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

ответ

0

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

То, что я бы, вероятно, сделать это вызвать ваш метод компоновки от -viewDidMoveToWindow: или -awakeFromNib

+0

Я вызываю его от -awakeFromNib – indragie

2

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

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

+0

Благодарим за получение! – dmitrynikolaev

0

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

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