0
在我的应用我需要显示和隐藏基于一些用户操作,我已经做了以下的NSView显示和隐藏子视图
在接口定义,有这样的
@interface MyWnd : NSWindowController {
MyCustomView1 *pCtmView1;
MyCustomView2 *pCtmView2;
}
增加的视图在源文件有以下相关的方法
-(void)CreateSubViews{
NSRect subViewRect = [self GetSubViewRect];
pCtmView1 = [[ MyCustomView1 alloc]initWithFrame:subViewRect]
pCtmView2 = [[ MyCustomView2 alloc]initWithFrame:subViewRect]
initially both view will be hidden
[pCtmView1 setHidden:TRUE];
[pCtmView2 setHidden:TRUE];
[[self window] view addSubView:pCtmView1];
[[self window] view addSubView:pCtmView2];
}
-(void)ShowSubView:(int)viewId{
if(viewId == 0){
[pCtmView1 setHidden:FALSE];
[pCtmView1 setNeedDisplay:YES];
}
if(viewId == 1){
[pCtmView2 setHidden:FALSE];
[pCtmView2 setNeedDisplay:YES];
}
}
在初始化应用我打电话ShowSubView:0和它的做工精细, 而是取决于一些用户操作,我会打电话给ShowSubView:1,并没有什么显示& EXEC_BAD_ACCESS我可以在GDB看到
请指引我,做我需要做更多的事情,以显示视图
感谢
尝试不要在以后调用setNeedsDisplay。此外,您应该使用YES和NO,而不是TRUE和FALSE。这是惯例,但它不应该是真的。 – Maz 2011-01-22 17:02:52