视图控制器调用 awakeFromNib 两次

2023-12-30

我面临着这个奇怪的问题,我不确定我哪里出了问题。

情况:

我有一个 MainWindowController 类,它将加载要显示的正确笔尖。 我创建了一个对象并将其更改为 IB 中的 MainWindowController 类,并将其与“MainWindowView”笔尖放在一起。

因此,基本上,笔尖“MainWindowView”具有自定义视图和侧面的一些按钮,以便用户可以选择要加载的视图,并且它将加载其他相应的笔尖。我在 IB 中启动期间隐藏了主菜单,因此它仅加载 MainWindowView 和其他 nib 文件。

然而,在调试时,当我将 NSLog 放在 MainWindowController 的 awakeFromNib 上时,我看到在控制台中它被调用了两次。

在我的项目中,我有一个startupController类和MainMenu.xib,代码如下。

启动控制器.h:

#import <Cocoa/Cocoa.h>
#import "MainWindowController.h"

@interface startupController : NSObject {
 MainWindowController *myWindowController;
}
@end

启动控制器.m:

#import "startupController.h"
@implementation startupController
-(void)awakeFromNib {
 [super init];
 if(myWindowController == nil)
 myWindowController = [[MainWindowController alloc] initWithWindowNibName:@"MainWindowView"];
 [myWindowController showWindow:self];
}
@end

任何帮助表示赞赏。谢谢。


听起来您正在创建两个 MainWindowController 对象,因此 awakeFromNib 将为每个对象调用一次。

startupContoller 方法中的 awakeFromNib 正在创建一个 MainWindowController 对象并使用 MainWindowView nib 对其进行初始化。如果您还向该笔尖添加了一个对象并将其类型设置为 MainWindowController,则加载笔尖时将创建另一个 MainWindowController 对象。

您应该从 MainWindowView 笔尖中删除 MainWindowController 对象,并将 File's Owner 对象的类型设置为 MainWindowController。 (MainWindowController 应该是 NSWindowController 的子类)您连接到您创建的对象的任何连接都应该连接到文件的所有者。

另外,您不应该在 awakeFromNib 中调用 [super init]。您应该只在 init 方法中调用 [super init]。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

视图控制器调用 awakeFromNib 两次 的相关文章

随机推荐

  • Dapper:无法解析浮点数(解析列时出错)

    我正在使用 Dapper 从 StoredProcedure 从 SQL Server 检索数据 但出现错误 Specified cast is not valid 和细节 Error parsing column 4 SubTotal 0
  • 如何忽略ansible SSH真实性检查?

    有没有办法忽略 Ansible 进行的 SSH 真实性检查 例如 当我刚刚设置一个新服务器时 我必须对这个问题回答 是 GATHERING FACTS The authenticity of host xxx xxx xxx xxx xxx
  • OBJFILELOADER - pygame

    所以我尝试跑步the code https www pygame org wiki OBJFileLoader但它给出了列表超出索引范围错误 我将索引从 1 更改为 0 但屏幕只弹出黑色 我怎样才能改变代码以使其工作 您只需将 obj 文件
  • 提取 Firebase / BigQuery DAU、WAU 和 MAU

    我不想让这个问题变得过于复杂 所以我会尽量问得尽可能清楚 以避免混淆 我需要的结果是双重的 我想要 在 a Google Analytics 以及 b Firebase Analytics 中确定移动应用的 DAU WAU 和 MAU 我想
  • Realm Swift 仅在本地使用,但它仍然尝试在线连接

    我正在关注Realm Swift 入门指南在这里 https realm io docs swift latest 并且工作正常 我有以下对象 class Dog Object dynamic var name dynamic var ag
  • 为什么下面的 Scala 函数被称为闭包?

    对于以下问题 http pastie org 4825115 http pastie org 4825115 这是我的代码 http pastie org private n22zohyshn2ymqrbrb3g http pastie o
  • 如何在 Android 应用程序中运行 shell 脚本?

    我正在尝试为 root 用户编写一个 android 应用程序 该应用程序运行一系列 shell 命令 或者一个 shell 脚本 如果更好的话 并显示输出 任何人都可以指出我正确的方向吗 此代码片段需要 root 访问权限 但会将给定的字
  • Excel VBA 根据单元格值将特定工作表导出为 PDF

    我想使用单元格值Sheet 4选择并导出Sheet 1 Sheet 2 and Sheet 3作为一个 PDF 文件 例如 如果第 4 页A1 1 A2 1 A3 0 则打印Sheet 1 and Sheet 2 但不是Sheet 3 我尝
  • Postgresql 中的奇怪行为

    我是 Postgresql 新手 我正在尝试从 MySQL 迁移我的应用程序 我有一个具有以下结构的表 Table public tbl point Column Type Modifiers Storage Description Tag
  • int** 和 const int** 可以使用别名吗?

    据我了解 这样的事情是可以的 const int ci 42 const int cip ci int ip int cip int j ip 那这个呢 const int ci 42 const int cip ci const int
  • 如何准备 Word 2007 文档以便 C# 可以从语义上提取数据?

    我有一个朋友正在写一篇400页书在 Microsoft Word 2007 中 在整本书中他都200 个故事每个都由许多段落组成 当他写完这本书后 他想将嵌入 Word 文档中的每个故事的文本复制到一个数据库表例如 Title varcha
  • 如何有条件地显示 ASP.NET MVC Razor 中的字段?

    我对 C 和 ASP NET MVC Razor 非常陌生 如果该字段不为空 我想在我的视图中显示该字段 Code tr class hide td class editor label Html LabelFor model gt mod
  • 如何使用mysql全文获取连续单词的频率

    我有一个MyISAM表包含超过 200 万条记录 其中有一个FULLTEXT多列索引 给定一个搜索词 我想知道多少次它出现在每个记录的索引字段中 例如 当搜索 test 在下表中 其中有一个FULLTEXT两者的索引FREETEXT and
  • 显示第一类类型

    我有一个项目列表 每个项目都有一个类 并且该类在整个过程中重复 我只想显示每个类的第一个实例 只用 CSS 就可以实现吗 ul li class red red li li class red red li li class blue bl
  • 读取和解析大型 XML 文件的性能问题

    我有一个目录 其中包含几个大型 XML 文件 总大小约为 10 GB 有没有办法遍历包含 XML 文件的目录并读取 50 字节乘 50 字节并以高性能解析 XML 文件 func mdc Mdc Loadxml path string wg
  • 如何更改 R 中的时间序列(XTS 或 ZOO)?

    我是 stackoverflow 的新手 对 R 也相当陌生 但经过长时间的艰苦搜索 找不到以下问题的答案 我有许多数据文件 它们是温度与时间序列的关系 我将 CSV 作为 ZOO 对象导入 然后转换为 XTS 正确的文件如下所示 其中包含
  • 在 Protractor / E2E 测试中访问 $http 数据 (AngularJS)

    我有一堆进展顺利的单元测试 并且我已经开始将 Protractor E2E 测试添加到我的项目中 我在页面上测试交互元素做得很好 但在测试从浏览器发送的某些数据时遇到问题 例如 我想看看点击某个按钮是否会产生一个POST到某个端点 我使用以
  • 如何删除 BottomBar jetpack compose 中选定的椭圆形项目颜色

    我想删除所选项目后面的蓝色椭圆形颜色 我怎样才能做到这一点 NavigationBarItem selected selected onClick onClick icon if selected selectedIcon else ico
  • 如何使用具有 2 个或更多根的 try_files

    我看了一遍又一遍 发现没有这样的实现 我想知道我正在尝试的是否可能 我有 3 个提供静态内容的相对路径 Path1 usr local www style1 static Path2 usr local www style2 static
  • 视图控制器调用 awakeFromNib 两次

    我面临着这个奇怪的问题 我不确定我哪里出了问题 情况 我有一个 MainWindowController 类 它将加载要显示的正确笔尖 我创建了一个对象并将其更改为 IB 中的 MainWindowController 类 并将其与 Mai