objective-c – awakeFromNib方法多次调用

objective-c – awakeFromNib方法多次调用,第1张

概述在我的基于NSPersistenDocument的项目中,我有一个这样的结构 myDocument (NSPersistentDocument) -> myDocument.xib (windows xib) | |-> vie 在我的基于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. 总结

以上是内存溢出为你收集整理的objective-c – awakeFromNib方法多次调用全部内容,希望文章能够帮你解决objective-c – awakeFromNib方法多次调用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1251443.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存