изменение размера подпредставления и наличие суперпредставлений / изменения размера окна - PullRequest
1 голос
/ 20 июля 2010

Мое окно структурировано так: NSWindow -> NSView -> NSTabView -> NSScrollView -> NSTextView. Если я изменю размер NSScrollView с помощью setFrameSize: размеры суперпредставлений / окна не меняются, чтобы вместить мой больший или меньший NSScrollView. Можно ли программным образом изменять размер окна и т. Д. Автоматически, когда я устанавливаю размер подпредставления, или мне нужно каким-то образом рассчитать размер всех компонентов пользовательского интерфейса и изменить размер самого окна? Заранее спасибо за любую помощь или направление.

Ответы [ 2 ]

3 голосов
/ 20 июля 2010

Нет встроенного способа сделать это.Вы должны сами рассчитать размеры.Предполагая, что все представления в вашей иерархии настроены на автоматическое изменение размера, вы можете просто изменить рамку окна и позволить автоматическому изменению размера выполнять свою работу.

0 голосов
/ 18 апреля 2013

Создайте категорию в 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;
    }
}
...