以编程方式更改宽度或高度不适用于Mac应用程序

时间:2011-07-07 04:38:08

标签: cocoa macos nstableview

我有一个非常奇怪的问题。我需要以编程方式增加我的TableView高度。但是,在宽度或高度方面的程序性框架变化尚未得到应用。还有其他方法可以在Cocoa中更改帧吗?

我正在使用以下代码:

-(IBAction )topButtonClicked:(id)sender{
    if(testView.isHidden == NO){
        [testView setHidden:YES];
        [tableView setFrame:NSMakeRect(0,595, 666,595+120)];
}
    else {
        [tableView setFrame:NSMakeRect(0,595, 666,595)];
        [testView setHidden:NO];
    }
}

1 个答案:

答案 0 :(得分:4)

默认情况下,表视图包含在滚动视图中,滚动视图配置为自动调整其子视图的大小。这意味着单独更改表视图框将不起作用,因为封闭滚动视图将自动调整它。

您应该改变封闭滚动视图的框架。例如:

[[tableView enclosingScrollView] setFrame:NSMakeRect(0,595, 666,595+120)];

或者您可以在滚动视图中找到一个插座:

[tableScrollView setFrame:NSMakeRect(0,595, 666,595+120)];