我是一个尝试使用带有NSDocument架构的WebKit(如某些WebKit参考代码中)的Web浏览器应用程序的新手。我打开一个预先设置的主页,然后将当前URL发布到相邻的文本字段,然后让WebView打开在文本字段中输入的URL,然后我将其更改为加载到本地文件中。我使用现有的NSDocument文件打开代码来做到这一点:我重写URL和NSData打开方法来缓存这两个(在文档对象内),然后在XIB创建时我将这些属性传递给WebView。
它似乎有效,但有些奇怪。我一直试图解决它,但我想我需要重新思考。我终于意识到,即使我将网页(带有文本字段)更改为远离本地文件,本地文件仍然被NSDocument体系结构标记。我想我需要"导入"本地文件而不是"打开。"一种方法是在加载文件后从内部跟踪中取消证明该文件。另一种方法是开始进行非跟踪读取。哪种方式最好?我怎样才能在NSDocument架构中做到这一点?
答案 0 :(得分:1)
发布此消息后,我发现NSDocument
具有fileURL
和setFileURL:
方法,这些方法控制文档对象跟踪的文件的属性。可以故意将其设置为nil
以取消证明文档的当前文件。
当然,现在导出使用“Untitled”作为保存当前浏览器页面的基本文件。该窗口的标题从Cocoa Binding到WebView的页面标题属性,但不会转移到文档对象。我会看到如何解决这个问题......
答案 1 :(得分:0)
更改默认"无标题"要明智一些,请使用NSDocuments setDisplayName方法。 (奇怪的是,在swift中,displayName是一个只读属性,但方法.setDisplayName()是可用的并且可以解决问题(XCode 7.3.1)。)