标签: nsdocumentcontroller

基于文档的应用程序不会还原包含非文件URL的文档

我有一个基于NSDocument的应用程序和一个NSDocumentController子类.我的NSDocument使用文件URL和URL以及使用Web服务的自定义方案.

我使用自定义代码处理大部分加载和保存,包括-saveToURL:ofType:forSaveOperation:completionHandler:.+autosavesInPlace回报YES.

我遇到的问题:启动时不会恢复具有自定义URL方案的文档.具有文件URL方案的文档是 - 保存到文件的常规文档和自动保存的无标题文档.

在打开基于服务器的文档并退出应用程序后,似乎没有在重新启动时调用NSDocument方法.特别是,四个初始化程序都不会被调用:

  • -在里面
  • -initWithContentsOfURL:ofType:错误:
  • -initForURL:withContentsOfURL:ofType:错误:
  • -initWithType:错误:

-reopenDocumentForURL:withContentsOfURL:display:completionHandler:也不调用NSDocumentController方法.

文件的可恢复状态如何以及何时编码?他们如何以及何时解码?

cocoa nsdocument nsdocumentcontroller

13
推荐指数
2
解决办法
2296
查看次数

Cocoa NSDocument:让自动保存工作

文档只是声明setAutosavingDelay在共享文档控制器上设置为> 0但应该在调用之后

[[NSDocumentController sharedDocumentController] setAutosavingDelay:2.0];
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,自动保存似乎不起作用:我既没有看到任何内容~/Library/Autosave Information/,也没有看到

[[[NSDocumentController sharedDocumentController] currentDocument] autosavedContentsFileURL]
Run Code Online (Sandbox Code Playgroud)

初始化.

请注意,在我的应用程序中,正常加载和保存工作正常(keyedarchivers,我的文档的基于nscoding的类等).

cocoa nsdocument nsdocumentcontroller

5
推荐指数
1
解决办法
2810
查看次数

通过文件拖放在启动时调试NSDocument应用程序?

假设我有一个NSDocument应用程序,它支持将文件拖放到其图标上以启动应用程序并打开该文件.我的NSApplicationDelegate已经实现了

- (BOOL)application:(NSApplication *)sender openFile:(NSString *)filename
Run Code Online (Sandbox Code Playgroud)

通过文件拖放调用.我希望能够打破并开始调试内部,application:openFile:但必须从Xcode启动应用程序以使用拖放启动.

这样做有什么好办法?

xcode cocoa nsdocument nsdocumentcontroller

4
推荐指数
1
解决办法
582
查看次数

删除"显示/隐藏标签栏"菜单项

最新版本的macOS Sierra在"查看"菜单中添加了"显示/隐藏标签栏"菜单项.

查看菜单项

它动态地执行此操作.

我的应用程序已经使用MMTabBarView库包含自己的选项卡栏.我宁愿继续使用这个库,因为它使我能够向后兼容选项卡,还能够对选项卡进行一些自定义.

关于删除此菜单项,我在Apple NSDocumentNSDocumentController文档中没有看到任何内容.

有没有人对我如何删除它有任何建议?

注意:我不想简单地禁用它,我希望完全删除它.(或者我想首先没有添加它).

macos cocoa nsdocument nsdocumentcontroller

4
推荐指数
1
解决办法
913
查看次数

如何防止基于文档的可可应用程序打开ANY文档?

最近,每当我启动我的应用程序时,保存的文档都会导致崩溃。有没有一种方法可以防止基于文档的应用程序打开任何文档,包括新的空白文档或最新的活动文档?我不希望通过使用OSX功能(不在我的应用程序范围内)而是在程序中进行此操作。

我认为应该通过NSDocumentController某种方式完成此操作,但是我无法弄清楚,也没有运气在其他地方找到答案。

因此,如何告诉OSX应用程序(通过NSDocumentController)在启动时不要打开任何文档?

macos cocoa nsdocument nsdocumentcontroller

3
推荐指数
1
解决办法
813
查看次数

标签 统计

cocoa ×5

nsdocument ×5

nsdocumentcontroller ×5

macos ×2

xcode ×1