首先,这个问题适用于用于Mac OSX应用程序的Objective-C编写的Xcode项目。
我收到警告“loadNibNamed:owner已弃用:首先在OS X 10.8中弃用”以获取以下行:
[NSBundle loadNibNamed:@"StartMyDialog" owner:self];
然而它现在似乎仍然可以正常工作。经过一些谷歌搜索后,我找到了以下解决方案:
[[NSBundle mainBundle] loadNibNamed:@"StartMyDialog" owner:self topLevelObjects:nil];
这会删除警告,但是当我运行项目时,即使上述行返回TRUE(表示nib文件已成功加载),也不会出现nib视图。还有什么我需要做才能让它出现吗?感谢。
答案 0 :(得分:1)
来自NSBundle文档:
<强>讨论强>
与遗留方法不同,对象遵循标准的可可内存管理规则;有必要通过使用IBOutlets或保持对数组的引用来保持对它们的强引用,以防止取消分配nib内容。
对顶级对象的出口应该是强引用,以证明所有权并防止重新分配。
所以你需要让你的顶级对象如此强大:
@property (nonatomic, strong) IBOutlet NSWindow *window;