2010-07-20 141 views
1

我的窗口结构如下:NSWindow - > NSView - > NSTabView - > NSScrollView - > NSTextView。如果我使用setFrameSize更改NSScrollView的大小:superviews/window不会调整大小以容纳我的更大或更小的NSScrollView。是否有可能以编程方式让窗口等自动调整大小,当我设置子视图的大小,或者我需要以某种方式计算所有的UI组件的大小和调整窗口本身?预先感谢您的帮助或指导。调整子视图的大小并调整大小/窗口大小

回答

3

有没有内置的方式来做到这一点。你必须自己计算大小。假设层次结构中的所有视图都设置为正确自动调整大小,则可以更改窗口的框架并让自动调整大小来完成其工作。

+1

感谢Joshua。现在至少我可以停止搜索这些不存在的方法。 :) – stdout 2010-07-21 11:45:05

0

以下方法创建上的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; 
    } 
}