在Swift文档型应用中重命名Document类

4
我正在使用Xcode在Swift上构建一个新的基于文档的OS X应用程序。我想将默认的Document类命名为其他名称(在此情况下为Notebook),但它仍然会继承NSDocument(如果我使用Core Data,则为NSPersistentDocument)。我可以将文件从Document.swift重命名为Notebook.swift,但是一旦我将实际的类从Document重命名为Notebook,运行应用程序就会弹出错误警报“无法创建任何文档”。控制台告诉我“DocumentType类型没有映射到任何NSDocumentClass。” 显然,在我重命名后,我必须执行其他操作以使文档架构能够识别我的类。 但是怎么做呢?我在另一个网站上找到了一些说明,但它们是针对Objective-C和XIB编写的,而我正在使用Swift和storyboard;我需要做的可能会有很大不同。如何在Swift中使用storyboard为文档型应用程序重命名主要文档类?
import Cocoa

class Document: NSDocument {
... [standard code for Document class goes here, edited out for brevity]
}

我把它改成了

import Cocoa

class Notebook: NSDocument {
[...]
}

它适用于顶部的版本,但不适用于底部的版本。

嘿,你有任何可以发布以帮助解决问题的代码吗? - KFDoom
3
在你的Xcode项目中搜索“Document”(整个单词,区分大小写)。 - Willeke
谢谢,那个方法可行。我会在下面添加一些详细信息,以防其他人遇到同样的问题。 - Displaced Hoser
1个回答

8

Willeke的建议是搜索"Document"(整个单词,大小写匹配),这让我找到了需要做的事情。记录一下,我需要进入Info.plist并转到Document types/Item 0(Document type)/Cocoa NSDocument Class,将"$(PRODUCT_MODULE_NAME).Document"更改为"$(PRODUCT_MODULE_NAME).Notebook"。


1
这让我发疯了一个小时,谢谢你的提示。 - stef
刚从Objective C迁移到Swift。$(PRODUCT_MODULE_NAME).ClassName解决了问题!谢谢! - JonLord

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接