基于文档的应用程序,预初始化窗口(输入序列号,购买,试用)

时间:2010-03-31 13:26:21

标签: cocoa initialization document-based

我需要在加载NSDocument之前创建几个窗口,或者创建一个阻止NSDocument窗口和顶层菜单的窗口。

我尝试了几种解决方案 - 但它们无法正常工作。

  1. 模态窗口,一个接一个。 Async URLConnection存在一些问题,以及我的NSDocument内容存在的其他一些问题。

  2. 我创建了没有菜单的自定义MainMenu.xib,它打开了我的预初始化窗口。 在这里我发现了一些其他问题,当一个文件(与我的应用程序相关联)被打开时 - 文档窗口初始化。在这里我试图继承NSDocumentController,但我发现无法暂停“打开文档”。 (我希望文档无论如何都要打开,但只有在关闭preitalitalize窗口后才能打开。)

  3. 那么这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

如果用户必须先通过未注册的对话框,请在您的应用委托中实施applicationShouldOpenUntitledFile:以返回NO

在“试用”和“确认注册”按钮的操作方法中,自行创建无标题文档(通过将the necessary message发送到文档控制器)。

答案 1 :(得分:0)

所以正确的答案是实施:
*申请:openFiles:
* applicationShouldOpenUntitledFile:

并实现自己的文档创建。这是它对我有用的方式。

MyDocument* document = [[MyDocument alloc] 
                             initWithContentsOfURL:fileURL 
                                            ofType:[fileName pathExtension] 
                                             error:nil
                       ];
  if(document)
  {
     [[NSDocumentController sharedDocumentController] addDocument:document];
     [document makeWindowControllers];
     [document showWindows];
 }

当然你需要编写错误处理代码。