macos - 如何为基于 NSDocument 的应用程序导入而不是打开文件?

标签 macos cocoa import nsdocument

我是一名尝试 Web 浏览器应用程序的新手,正在尝试使用带有 NSDocument 架构的 WebKit(如某些 WebKit 引用代码)。我让它打开一个预先设置的主页,然后将当前 URL 发布到相邻的文本字段,然后让 WebView 打开输入到文本字段中的 URL,然后我将其更改为加载到本地文件中。我使用现有的 NSDocument 文件打开代码做到了这一点:我重写 URL 和 NSData 打开方法来缓存这两个方法(在文档对象内),然后在 XIB 创建时将这些属性传递给 WebView。

这似乎有效,但有奇怪的地方。我一直在努力解决这个问题,但我认为我需要重新考虑。我终于意识到,即使我将网页(带有文本字段)更改为远离本地文件,本地文件仍然由 NSDocument 架构标记。我想我需要“导入”本地文件而不是“打开”。一种方法是在加载文件后取消文件的内部跟踪认证。另一种方法是首先进行非跟踪读取。哪种方式最好?我该如何在 NSDocument 架构中做到这一点?

最佳答案

发布此文后,我发现 NSDocumentfileURLsetFileURL: 方法,它们控制哪个文件的属性文档对象正在跟踪。可以故意将其设置为nil以取消文档当前文件的认证。

当然,现在导出使用“Untitled”作为保存当前浏览器页面的基础文件。窗口从 Cocoa Binding 获取其标题到 WebView 的页面标题属性,但这不会传递到文档对象。我会看看如何解决这个问题......

关于macos - 如何为基于 NSDocument 的应用程序导入而不是打开文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25016265/

相关文章:

cocoa - NSTextView高亮显示

MySQL 服务器在导入一个巨大的数据库时已经消失了异常

linux - 如何在grep期间显示文件名

macos - ideaVim 中无法退出插入模式

security - 使用 SecAsn1Decode 解析 DER 格式数据

javascript - Laravel 使用 Vueify

ios - 如何在 iOS 应用程序中实现/导入图形设计

objective-c - OS X 如何指定启动 View Controller

xcode - 来自调试器的消息 : unable to attach error for osx app

ios - EKEventStore eventsMatchingPredicate 赋值