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

发布于 2024-08-27 09:45:49 字数 400 浏览 6 评论 0原文

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

我尝试了几种解决方案 - 但它们都不起作用。

  1. 模态窗口,一个接一个。 Async URLConnection 出现了一些问题,我的 NSDocument 内容也出现了一些其他问题。

  2. 我创建了没有菜单的自定义 MainMenu.xib,它打开了我的预初始化窗口。 在这里,当打开文件(与我的应用程序关联)时,我发现了一些其他问题 - 文档窗口初始化。在这里,我尝试对 NSDocumentController 进行子类化,但我发现无法暂停“打开文档”。 (无论如何,我希望打开该文档,但只有在预初始化窗口关闭之后)。

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

I need to create several windows before NSDocument is loaded, or create a window that blocks NSDocument window and top menu.

I tried several solutions - but they didn't work right.

  1. modal window, one after another. there were some problems with Async URLConnection, and some other problems with my NSDocument content.

  2. I created custom MainMenu.xib with no menu, that opens my preinitialize windows.
    here i found some other problems, when a file(associated with my application) is opened - the Document Window initializes. Here i tried to subclass NSDocumentController, but i found no way to pause the "open document". (i want the document to be opened anyway, but only after the preinitalize windows would be closed).

So what is the right way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

愿得七秒忆 2024-09-03 09:45:49

在您的应用程序委托中实现 applicationShouldOpenUntitledFile:,以便在用户必须首先浏览尚未注册的对话框时返回 NO

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

Implement applicationShouldOpenUntitledFile: in your app delegate to return NO if the user has to go through the not-registered-yet dialog first.

In the action methods for your “Trial” and “Confirm Registration” buttons, create the untitled document yourself (by sending the necessary message to the document controller).

蓝礼 2024-09-03 09:45:49

所以正确的答案是实施:
* 应用程序:打开文件:
* applicationShouldOpenUntitledFile:

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

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

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

So the right answer is to implement:
* application:openFiles:
* applicationShouldOpenUntitledFile:

and implement your own document creation. this is the way it worked for me.

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

of course you need to write error handling code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文