【发布时间】:2020-01-07 17:18:47
【问题描述】:
我正在尝试创建一个应用程序,允许用户循环浏览文件夹中的下一个/上一个文本文档文件,就像照片查看应用程序通常允许下一个/上一个图片视图一样。到目前为止,在我看来,最有效的方法是替换当前打开的窗口中的文档。 my previous question on the topic 的编辑答案表明这确实是可能的。我希望能够使用文档架构进行打开和保存;我不想概括框架,我试图保持简单。我尝试使用上一个问题中推荐的代码如下:
let prevDocument = windowController.document
let newDocument = Document(contentsOf: newURL, ofType: myDocumentType) // add do-catch
NSDocumentController.shared.addDocument(newDocument);
newDocument.addWindowController(windowController)
prevDocument.close()
但是当我这样做时,prevDocument.close() 命令给了我一个奇怪的错误“对成员'close()' 的模糊引用”。 Another thread 告诉我“当有多个同名变量/方法时会出现这种错误”。好的,但是哪些,我该如何解决?在“模糊参考”错误下,我收到两条消息:“找到这个候选者(Foundation.Stream)”和“找到这个候选者(AppKit.NSBezierPath)”。简要查看 Foundation.Stream 和 NSBezierPath 的文档表明我正在尝试使用 Foundation.Stream 而不是 NSBezierPath,但我不知道如何告诉系统(或者为什么 NSBezierPath 会参与第一名)。
【问题讨论】:
-
尝试类型转换:
if let prevDocument = windowController.document as? Document { ...}.
标签: swift macos cocoa document