创建多窗口可可计划-启动程序建议?

问题描述 投票:0回答:1

我正在将我在Visual Studio 2008中开发的应用程序移植到Cocoa。我目前正在对可可粉进行“边走边学”的方法,因此我可以在更小,更简单的项目中尝试不同的想法和技术,并最终将它们组合到一个大型应用程序中。

我的程序逻辑如下(从精简意义上来说)。列表中的项目是我老板要求的。

  1. 开始应用1a。验证CD程序在驱动器中。
  2. 验证许可证。如果找到并且有效,请跳至步骤7
  3. 显示许可协议。
  4. 显示序列号提示。
  5. 验证并保存序列号。
  6. 隐藏所有先前的窗口。
  7. 加载主应用程序窗口
  8. 从主应用程序窗口拦截请求和命令,包括复制主应用程序窗口
  9. 根据用户要求退出程序

这种类型的应用最好的选择是什么?从我提出的另一个问题中,我发现我应该将“主应用程序”窗口与其余文件保存在单独的XIB文件中,因为可能需要克隆并与之交互。

我知道,由于Cocoa和Objective-C是基于C的,所以在某处有Main方法。但是作为这样的应用程序的起点,你们都会建议些什么?

objective-c macos cocoa porting
1个回答
1
投票

所以其中一些归结于组织。就像朱利安提到的那样,您将需要一个YouappnameApplicationDelegate类-实际上,Xcode将在创建项目时为您创建并设置它。

实现applicationDidFinishLaunching方法(Xcode给您提供的方法也应提供),并在那里执行步骤1和2(以及步骤7、8、9)的逻辑。

您可能要在另一个类中实现的第3步到第5步。 RegistrationWindowController或类似的东西。您甚至可能希望在另一个nib文件中创建此窗口(而不是Xcode为您提供的MainMenu.nib文件内部)。在YouappnameApplicationDelegation的applicationDidFinishLaunching方法中,您将加载该笔尖(请参见下面的代码示例)。这样,您的代码井井有条-这正是Cocoa真正指导您执行的操作。

好,现在如何加载该新笔尖文件:

myInstanceVariable = [[RegistrationWindowController alloc] initWithWindowNibName: @"MyNibName"];
[myInstanceVariable showWindow: self];

RegistrationWindowController应该是NSWindowController的子类。

这应该使您花相当长的时间进行研究,希望对您有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.