我正在处理我的应用程序的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];
}
提前致谢!
答案 0 :(得分:0)
我再一次找到了解决方案。我正在更改drawRect方法中的nsview边界(尽管它是在进行任何绘制之前)。我把那段代码放到别处,现在它完全正常工作。