更改TabView:调整TabView&窗口

时间:2012-05-13 23:44:24

标签: objective-c xcode macos cocoa

我制作了一个具有2个标签的首选项窗口的应用程序。 第一个标签中有很多prefs设置,但第二个标签非常小......

我想看看tabview&当我们在这两个标签之间切换时,窗口会调整大小。

我这样做,但它似乎不起作用,当我切换视图时,“网络设置”选项卡正在减少并消失(例如,如果高度从动画的原点变为0)。

这是我的代码(.m):

- (void)tabView:(NSTabView *)tabView
didSelectTabViewItem:(NSTabViewItem *)tabViewItem
{
    NSRect  frame;
    int    height;

    if ([[tabViewItem identifier] isEqualTo:@"Panel settings"]) {
        height = 400;

    } else if ([[tabViewItem identifier] isEqualTo:@"Network settings"]) {
        height = 200;

    } 

    frame = [[tabView window] frame];

    frame.size.height = height;
    frame.origin.y += height;

    [[tabView window] setFrame:frame display:YES animate:YES];
}

请注意,我将标签视图链接到委托。 我的窗口链接到NSWindow * PrefWindow引用插座。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我仍然认为问题在于您在IB中设置弹簧和支柱的方式 - 确保您不仅为标签视图本身设置它们,而且还为标签视图项目视图中的单个对象设置它们。我注意到我的子视图的默认设置都是顶部支柱设置,当窗口缩小时,视图底部附近的任何子视图都会消失。