objective-c – awakeFromNib方法多次调用
发布时间:2020-12-16 05:58:38 所属栏目:百科 来源:网络整理
导读:在我的基于NSPersistenDocument的项目中,我有一个这样的结构 myDocument (NSPersistentDocument) - myDocument.xib (windows xib) | |- view (the self.view) -- ... "other view" | |- some NSArrayController | |- myResourceViewController -- myResource
在我的基于NSPersistenDocument的项目中,我有一个这样的结构
myDocument (NSPersistentDocument) -> myDocument.xib (windows xib) | |-> view (the self.view) --> ... "other view" | |-> some NSArrayController | |-> myResourceViewController --> myResourceViewController.xib | |-> view (the self.view) | |-> myTreeController (a NSTreeController subclass) 基本上,myResourceViewController是一个viewController的一个实例,它管理resourceView并管理他们的数据. 在awakeFromNib方法myDocument我有以下代码 - (void)windowControllerDidLoadNib:(NSWindowController *)aController { ... [leftBar addSubview:resourceViewController.view]; //i add resourceViewController's view resourceViewController.view.frame = leftBar.bounds; ... } 在myResourceViewController awakeFromNib方法我有: -(void)awakeFromNib; { NSLog(@"%@",[self description]); [removeButton bind:@"enabled" toObject:resourceTreeController withKeyPath:@"selection" options:[NSDictionary dictionaryWithObject:NSIsNotNilTransformerName forKey:NSValueTransformerNameBindingOption]]; NSArray *draggedTypes = [NSArray arrayWithObjects:ResourceURIPasteBoardType,nil]; [resourceOutlineView registerForDraggedTypes:draggedTypes]; } NSLog表示,同一个myResourceViewController实例的awakeFromNib被称为4次,我不明白为什么.我唯一的ResourceViewController是在myDocument xib中创建的.我不使用NSNib加载方法到处. 解决方法
我找到了解决方案.每次NSOutlineView创建NSTableCellView时都会调用awakeFromNib.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |