Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 基于文档的应用程序,预初始化窗口(输入序列号、购买号、试用号)_Cocoa_Initialization_Document Based - Fatal编程技术网

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

Cocoa 基于文档的应用程序,预初始化窗口(输入序列号、购买号、试用号),cocoa,initialization,document-based,Cocoa,Initialization,Document Based,在加载NSDocument之前,我需要创建几个窗口,或者创建一个阻止NSDocument窗口和顶部菜单的窗口 我尝试了几种解决方案,但都不管用 模态窗口,一个接一个。异步URLConnection存在一些问题,而我的NSDocument内容也存在一些其他问题 我创建了自定义MainMenu.xib,没有菜单,它打开了我的预初始化窗口。 在这里,我发现了一些其他问题,当打开一个文件(与我的应用程序关联)时,文档窗口会初始化。在这里,我试图将NSDocumentController子类化,但我发现没

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

我尝试了几种解决方案,但都不管用

  • 模态窗口,一个接一个。异步URLConnection存在一些问题,而我的NSDocument内容也存在一些其他问题

  • 我创建了自定义MainMenu.xib,没有菜单,它打开了我的预初始化窗口。 在这里,我发现了一些其他问题,当打开一个文件(与我的应用程序关联)时,文档窗口会初始化。在这里,我试图将NSDocumentController子类化,但我发现没有办法暂停“打开的文档”。(我希望文档仍能打开,但只能在预初始化窗口关闭后打开)


  • 那么,正确的方法是什么呢

    如果用户必须先通过“尚未注册”对话框,则在应用程序委托中实现应用程序应打开UntitledFile:以返回
    NO


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

    因此正确的答案是实现:
    *应用程序:openFiles:
    *应用程序应打开UntitledFile:

    并实现您自己的文档创建。这就是我的工作方式

    MyDocument* document = [[MyDocument alloc] initWithContentsOfURL:fileURL ofType:[fileName pathExtension] error:nil ]; if(document) { [[NSDocumentController sharedDocumentController] addDocument:document]; [document makeWindowControllers]; [document showWindows]; } MyDocument*document=[[MyDocument alloc] initWithContentsOfURL:fileURL 类型:[文件名路径扩展名] 错误:无 ]; 如果(文件) { [[NSDocumentController sharedDocumentController]添加文档:文档]; [文件控制器]; [文件显示窗口]; }
    当然,您需要编写错误处理代码。

    双击相关文件加载文档怎么样?怎么锁这个?以及如何保存(URL)以在尚未注册对话框后打开它?实现
    应用程序:openFiles:
    。如果试用对话框已打开,则将路径隐藏在数组中,然后在对话框完成(或关闭)时,告诉文档控制器将其真正打开。如果我通过NSApplication委托捕获文件(应用程序:openFiles:)。在这种情况下,我应该怎么做才能在以后用我的NSDocument打开这些文件?(将此操作向前传输)。如我所说,将消息发送到文档控制器。有关更多详细信息,请参阅文档。对不起,我提出了一些新问题。但我在NSDocumentController中找到的唯一方法是
    -(id)openDocumentWithContentsOfURL:(NSURL)absoluteURL display:(BOOL)displayDocument error:(NSError*)outError
    ,但我不知道如何使用它<代码>添加文档:[[MyDocument alloc]init]也不会创建窗口。你能告诉我,你的意思是什么?