Cocoa 是同一数据类型的查看器和编辑器的应用程序?

Cocoa 是同一数据类型的查看器和编辑器的应用程序?,cocoa,nsdocument,Cocoa,Nsdocument,NSDocument系统主要用于读取和写入特定数据类型的文件。对于一个既需要只读又需要读写的类型呢?我正在计划一个电子邮件应用程序;它需要一个读写文档类型,用于在发送之前撰写消息,以及一个只读类型,用于查看已发送的消息(来自“已发送邮件”文件夹)。Mail.app的工作原理是这样的 这会作为两个NSDocument子类完成吗?(他们的模型类将使用相同的RFC822类。)如何使一个文档类型成为只读的?它仍然是一个文档。您只是有一个不同的UI,可以显示以进行编辑。 对于电子邮件,您将仅显示“新建”或

NSDocument系统主要用于读取和写入特定数据类型的文件。对于一个既需要只读又需要读写的类型呢?我正在计划一个电子邮件应用程序;它需要一个读写文档类型,用于在发送之前撰写消息,以及一个只读类型,用于查看已发送的消息(来自“已发送邮件”文件夹)。Mail.app的工作原理是这样的


这会作为两个NSDocument子类完成吗?(他们的模型类将使用相同的RFC822类。)如何使一个文档类型成为只读的?

它仍然是一个文档。您只是有一个不同的UI,可以显示以进行编辑。 对于电子邮件,您将仅显示“新建”或“答复/全部答复/转发”操作方法的编辑。(酌情引用原始邮件。)
从技术上讲,您可以在任何可以打开该文件的编辑器中打开“只读”邮件文件

最简单的方法之一是创建一个
BOOL,说
isReadOnly`

如果其值为
YES
(只读模式),则将
NSTextView
设置为只读;如果其值为
NO
(编辑模式),则将其设置为默认值,即启用读写功能

以下内容将根据您的
BOOL isReadOnly工作:

[self.yourTextView setEditable:isReadOnly];