Мое окно устроено так: NSWindow -> NSView -> NSTabView -> NSScrollView -> NSTextView. Если я изменю размер NSScrollView с помощью setFrameSize: суперпредставления/окна не изменятся, чтобы приспособить мой больший или меньший NSScrollView. Возможно ли программно изменить размер окна и т. д., когда я устанавливаю размер подпредставления, или мне нужно каким-то образом вычислить размер всех компонентов пользовательского интерфейса и изменить размер самого окна? Заранее спасибо за любую помощь или направление.
изменение размера подпредставления и изменение размера суперпредставления/окна
Ответы (2)
Нет встроенного способа сделать это. Вам придется вычислить размеры самостоятельно. Предполагая, что все представления в вашей иерархии настроены на автоматическое изменение размера, вы можете просто изменить рамку окна и позволить автоматическому изменению размера выполнить свою работу.
person
Joshua Nozzi
schedule
20.07.2010
Спасибо Джошуа. Теперь, по крайней мере, я могу перестать искать эти несуществующие методы. :)
- person stdout; 21.07.2010
Создайте категорию в UIView следующим методом:
- (void) resizeSuperviewsToContain {
UIView* view = self;
while(view.superview) {
CGFloat maxY = CGRectGetMaxY(view.frame);
CGRect superViewFrame = view.superview.frame;
if(superViewFrame.size.height < maxY) {
superViewFrame.size.height = maxY;
view.superview.frame = superViewFrame;
}
view = view.superview;
}
}
person
bbrame
schedule
18.04.2013