У меня очень большие трудности с настройкой настроек PXListView и NSScrollView.
Вот суть этого:
У меня есть страница панели инструментов, которая должна содержать 2 PXListViews. Один из них получает свои данные из Core Data, другой - из RSS-канала. Оба они добавляются в суперпредставление и связанный контроллер (у меня есть режимы, отличные от Dashboard, так что это был самый эффективный способ).
Это суперпредставление становится documentView для моего NSScrollView.
Я могу заставить все это работать хорошо, за исключением просмотра списка на основе канала RSS.
Я получаю фид асинхронно, чтобы он не поддерживал пользовательский интерфейс, и как только фид был получен и список заполнен, я автоматически изменяю его размер.
Все это прекрасно работает, однако мне нужно изменить размер моего Dashboard View, чтобы прокрутить полосы прокрутки вверх. Поэтому я отправляю уведомление, которое приводит к методу autosizeView, который я создал, но все идет к черту.
Два ListViews начинают перекрываться, а содержимое верхнего заканчивается в нижнем. Снимок экрана ниже (красный - прямоугольник границ, синий - рамка каждого подпредставления)
Это перед вызовом autosizeView: ![enter image description here](https://i.stack.imgur.com/YrojH.png)
Это после вызова:
![enter image description here](https://i.stack.imgur.com/wnxBE.png)
И, если быть точным, это выглядит так, если я изменяю размеры PXListViews и не вызываю метод автоматического изменения размера DashboardView:
![enter image description here](https://i.stack.imgur.com/1Zesx.png)
Как видите, он работает нормально, пока я не вызываю autosizeViews, но тогда я не получаю прокрутки. Вот мой метод autosizeView:
-(void)autosizeView
{
//Resize the view to accommodate all subviews
NSRect oldFrame = [[self view] frame];
CGFloat lastY = [_activityView frame].origin.y;
if (lastY < 0) {
CGFloat newHeight = oldFrame.size.height + (-lastY);
[[self view] setFrameSize:NSMakeSize(oldFrame.size.width, newHeight)];
}
}
Полагаю, все это как-то связано с тем, что координаты меняются, когда я изменяю размер DashboardView, из-за чего происхождение его подпредставлений меняется.
Любая помощь будет принята с благодарностью !!!