我正在将我在Visual Studio 2008中开发的应用程序移植到Cocoa。我目前正在对Cocoa进行“随时随地学习”的方法,因此我可以在更小,更简单的项目中尝试不同的想法和技术,并最终将它们组合成一个大型应用程序。
我的程序逻辑如下(在一种愚蠢的意义上)。列表中的项目由我的老板强制执行。
这类申请最好的选择是什么?从我提出的另一个问题中,我发现我应该将“主应用程序”窗口保留在与其余文件不同的单独XIB文件中,因为我可能需要克隆并与之交互。
我知道,由于Cocoa和Objective-C基于C,因此某处有一个Main方法。但是你们都建议作为这样的应用程序的起点?
答案 0 :(得分:1)
因此,其中一些归结为组织。就像Julien提到的那样,你需要一个YouappnameApplicationDelegate类 - 事实上,Xcode会在你创建项目时为你创建和设置它。
实现applicationDidFinishLaunching方法(也应该由Xcode提供给你),并在那里实现步骤1和2的逻辑(以及步骤7,8,9)。
步骤3到5你可能想要在另一个类中实现。 RegistrationWindowController,或类似的东西。您甚至可能希望在另一个nib文件中创建此窗口(不在Xcode为您提供的MainMenu.nib文件中)。在YouappnameApplicationDelegation的applicationDidFinishLaunching方法中,您将加载此nib(请参阅下面的代码示例)。这样你的代码组织得很好 - 这就是Cocoa真正指导你做的事情。
好的,现在如何加载新的nib文件:
myInstanceVariable = [[RegistrationWindowController alloc] initWithWindowNibName: @"MyNibName"];
[myInstanceVariable showWindow: self];
RegistrationWindowController应该是NSWindowController的子类。
这应该会让你在研究中走很长的路,希望它有所帮助!