0

我已经完成了一些 iOS 编码,但现在我正在尝试编写一个 Mac 应用程序。此链接:NSViewController 中的 viewDidLoad?说 viewDidLoad 的 OSX 等效项是 loadView。我想在视图出现后立即调用初始化方法,但 loadView 似乎没有执行;也就是说,我的视图控制器中的以下代码:

- (void)loadView {
    [super loadView];
    NSLog(@"Test");
    [self addPanGesture];
}

似乎什么都没做。NSLog 永远不会显示,并且 addPanGesture 方法永远不会执行。我是否错过了一些非常愚蠢的东西,或者 loadView 不再是正确的覆盖方法?

编辑:我切换到 windowDidLoad 并根据 Ahmed Z 的建议删除了超级调用,但这也不起作用。除了像在 iOS 中那样简单地添加方法之外,我还需要做任何事情吗?此外,我最初在顶部发布的链接似乎在“已接受”答案(不是最高评价的答案)中说 windowDidLoad 从 Mac OSX 10.5 开始不再使用

编辑 2:似乎还值得一提的是,我正在使用 xib 文件。一个 stackoverflow 链接说 loadView 仅在以编程方式设置视图时被调用。

4

1 回答 1

0

弄清楚了。通过在我的 MainMenu.xib 中放置另一个 NSWindow 并为其创建一个引用,我可以调用

[self.secondWindow display];

打开第二个窗口。

于 2013-12-08T05:44:14.870 回答