У меня возникли трудности с настройкой моей настройки PXListView и NSScrollView. Вот его суть:Изменение размера NSView для размещения подпунктов
У меня есть страница панели инструментов, которая содержит 2 PXListViews. Один из них получает данные из Core Data, а другой - из RSS-канала. Оба они добавляются в супервизор и связанный с ним контроллер (у меня есть режимы, отличные от Dashboard, так что это был самый эффективный способ). Этот супервизор становится документомView для моего NSScrollView.
Я могу получить все это, чтобы работать хорошо, за исключением того, что в режиме просмотра списка RSS-каналов. Я получаю канал асинхронно, чтобы он не задерживал пользовательский интерфейс, и как только фид был получен, и заполняется список, я автоматически изменяю его размер. Все это прекрасно работает, однако мне нужно изменить размер представления панели инструментов, чтобы получить полосы прокрутки. Поэтому я отправляю уведомление, которое приводит к методу autosizeView, который я создал, но все идет к черту.
Два списка ListViews начинают перекрываться, а содержимое верхнего - в нижнем. Снимок экрана ниже (красный есть границы прямоугольника, синяя рамка каждого подвид)
Это перед вызовом autosizeView:
Это после его вызова:
И для хорошей меры, это что это выглядит, как если бы я изменить размер PXListViews и не вызвать метод авторазмер в DashboardView в:
Как вы можете видеть, она отлично работает до тех пор, пока я не называю autosizeViews, но тогда я не получаю тыс e скроллеров. Вот мой метод 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, вызывая происхождение его подвидов пойти наперекосяк.
Любая помощь будет принята с благодарностью!