我想要两者我的AppDelegate和我的ViewController在启动时被调用(如预期的那样)。
仅调用ViewController时:
int main(int argc, const char * argv[]) {
return NSApplicationMain(argc, argv);
}
调用AppDelegate且视图控制器不是。
#import "AppDelegate.h"
int main(int argc, const char *argv[])
{
NSArray *tl;
NSApplication *application = [NSApplication sharedApplication];
[[NSBundle mainBundle] loadNibNamed:@"ViewController" owner:application topLevelObjects:&tl];
AppDelegate *applicationDelegate = [[AppDelegate alloc] init]; // Instantiate App delegate
[application setDelegate:applicationDelegate]; // Assign delegate to the NSApplication
[application run]; // Call the Apps Run method
return 0; // App Never gets here.
}
我认为我的问题是, main.c 的第二次尝试是......
NSApplication *application = [NSApplication sharedApplication];
[[NSBundle mainBundle] loadNibNamed:@"ViewController" owner:application topLevelObjects:&tl];
未按预期工作。我在哪里实际设置了'Nib'在IB?
有什么问题?
答案 0 :(得分:0)
你有这种困惑......你应该仔细看看我在这里的另一个答案:Other Answer
你的第一个main.c示例是完全错误的。你的第二个main.c,它更接近我给出的例子,但是你正在调用 viewController ,你应该引用MainMenu nib,就像我的例子一样。
这一行错了:
[[NSBundle mainBundle] loadNibNamed:@"ViewController" owner:application topLevelObjects:&tl];
将NIB名称放在那里......这就是为什么方法参数被称为“loadNibNamed”:) - 并摆脱@“ViewController”。
现在如果你想要一个完整的笔尖,那么你真的不需要我的例子。这是为那些真正想要几乎完全编程的人设计的。