В своих приложениях я должен отображать и скрывать основываясь на определенных действиях пользователя, я сделал следующее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];
}
}
В Application Init я звоню ShowSubView: 0 и его работает нормально, но зависит от некоторого действия пользователя, я буду называть ShowSubView: 1 и ничего не отображается & EXEC_BAD_ACCESS я мог видеть в БГД
Пожалуйста, руководство меня, мне нужно сделать что-то еще, чтобы отобразить вид
Благодаря
Не пытайтесь вызвать setNeedsDisplay после этого. Кроме того, вы должны использовать YES и NO вместо TRUE и FALSE. Это соглашение, хотя это не имеет большого значения. – Maz
Это 'EXC_BAD_ACCESS', а не' EXEC_BAD_ACCESS'. «EXC» означает «исключение», здесь подразумевается исключение ядра Mach, т. Е. Ваше приложение разбилось. Кроме того, вы можете разделить 'ShowSubview:' на два метода: по одному для каждого представления. Цепочки «если» заявления заставляют меня нервничать; Интересно, какую ветвь или ветви автор (вы) забыли. –