Objective c 调用AppDelgate或调用ViewController

Objective c 调用AppDelgate或调用ViewController,objective-c,macos,viewcontroller,appdelegate,Objective C,Macos,Viewcontroller,Appdelegate,我希望AppDelegate和ViewController在启动时都能按预期调用 仅调用ViewController时: main.c 调用AppDelegate而未调用视图控制器时 main.c 我想我的问题是,第二次尝试的主要。c是 NSApplication *application = [NSApplication sharedApplication]; [[NSBundle mainBundle] loadNibNamed:@"ViewController&q

我希望AppDelegate和ViewController在启动时都能按预期调用

仅调用ViewController时:

main.c 调用AppDelegate而未调用视图控制器时

main.c 我想我的问题是,第二次尝试的主要。c是

NSApplication *application = [NSApplication sharedApplication];
        [[NSBundle mainBundle] loadNibNamed:@"ViewController" owner:application topLevelObjects:&tl];
没有按预期工作。在IB中,我实际在哪里设置“Nib”


怎么了?

你有这种困惑。。。。你应该仔细看看我的另一个答案:

您的第一个main.c示例完全错误。您的第二个main.c更接近我给出的示例,但您调用的是viewController,您应该在其中引用MainMenu nib,如我的示例所示

这一行是错误的:

 [[NSBundle mainBundle] loadNibNamed:@"ViewController" owner:application topLevelObjects:&tl];
把笔尖的名字放在那里。。。这就是为什么方法参数被称为loadNibNamed:-并去掉@ViewController


现在,如果您试图调用一个完整的nib,那么您实际上不需要我的示例。这是为那些真正尝试完全编程的人设计的。

请阅读Cocoa编程的介绍。只有在您调用上一行触发的默认运行循环时终止,应用程序才会到达返回点。默认的应用程序运行循环类似于while true{shoulddosomething}。简单看一下,你就会知道如何正确地做。
NSApplication *application = [NSApplication sharedApplication];
        [[NSBundle mainBundle] loadNibNamed:@"ViewController" owner:application topLevelObjects:&tl];
 [[NSBundle mainBundle] loadNibNamed:@"ViewController" owner:application topLevelObjects:&tl];