在我的应用程序中,我需要根据某些用户操作显示和隐藏,我已经完成了以下操作
在界面定义中,添加了类似的 View
@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 中看到
请指导我,我需要做更多的事情来显示 View
谢谢
最佳答案
当您的应用崩溃时,查看“调试器”窗口 - 它会告诉您应用崩溃时正在执行什么操作。
您可能想要停止调试器并在 Instruments 的 Zombies 工具下重新运行您的应用程序。当崩溃是因为您向一个死亡对象发送消息时(这在 Cocoa 中可能是 80% 的原因),Zombies 工具会告诉您那是什么对象以及是什么杀死了它。
关于objective-c - NSView显示和隐藏SubView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4769122/