Cocoa 设置nsview大小

Cocoa 设置nsview大小,cocoa,nsview,nsscrollview,Cocoa,Nsview,Nsscrollview,我正在开发我的应用程序的GUI。我有一个嵌入到NSScrollView中的主视图。当用户单击按钮时,其内容将刷新。然后确定显示内容所需的高度。视图显示不好,有很多小故障,显示两次的项目。。。我知道问题是当我用[self-setBounds:…]设置视图大小时。您知道如何更改视图大小吗?以下是代码: CGFloat allHeight= 0.0; for(int i=0; i < [publications count]; i++) { Publication* pub= [

我正在开发我的应用程序的GUI。我有一个嵌入到NSScrollView中的主视图。当用户单击按钮时,其内容将刷新。然后确定显示内容所需的高度。视图显示不好,有很多小故障,显示两次的项目。。。我知道问题是当我用[self-setBounds:…]设置视图大小时。您知道如何更改视图大小吗?以下是代码:

CGFloat allHeight= 0.0;
for(int i=0; i < [publications count]; i++) {
        Publication* pub= [publications objectAtIndex:i];
        CGFloat pubHeight= [self heightForTextStorage:[pub statusContent] withWidth:300];
    if (pubHeight < 100.0) 
        pubHeight= 100.0;
    allHeight += pubHeight;
}

if (allHeight > [[self superview] bounds].size.height) {
    NSRect allBounds= self.frame;
    allBounds.size.height= allHeight;
    [self setFrame:allBounds];
}
else {
    NSRect allBounds= [[self superview] bounds];
    [self setFrame:allBounds];
}

提前谢谢

我又一次找到了解决办法。我在drawRect方法中更改了nsview边界,尽管这是在进行任何绘图之前。我把那段代码放在别处,现在它工作得很好