我有一个基于 Cocoa 文档的应用程序,它(目前至少)用作基本的文本编辑器。它保存 .txt、.rtf 和 .rtfd,并加载它们以及 .doc 和 .docx。如果我打开一个 .doc 或 .docx 文件并对其进行编辑,然后尝试关闭它,它会提醒我保存,但保存选项不会做任何事情,因为该应用程序只是这些类型文件的查看器。对于只能查看的类型(如 .doc 和 .docx),如何将该功能设置为“另存为”?
问问题
1327 次
2 回答
1
saveDocumentWithDelegate:::
将您自定义的内容覆盖为NSDocument
以下内容:
- (void)saveDocumentWithDelegate:(id)delegate didSaveSelector:(SEL)didSaveSelector contextInfo:(void *)contextInfo
{
if (delegate != nil)
{
// use delegate or contextInfo to decide what operation you need to use...
[self runModalSavePanelForSaveOperation:NSSaveAsOperation
delegate:delegate
didSaveSelector:didSaveSelector
contextInfo:contextInfo];
}
else
{
[super saveDocumentWithDelegate:delegate
didSaveSelector:didSaveSelector
contextInfo:contextInfo];
}
}
默认情况下,delegate
它要么是NSWindow
关闭窗口,要么是NSDocumentController
您退出应用程序并且控制器枚举窗口以查看更改。
于 2010-09-04T13:35:00.383 回答
0
不完全清楚您是否真的想在编辑后写入更新的文件,或者阻止编辑从而防止警告文档已被修改。
要看不到保存警告,首先您需要将文档类型角色设置为“查看者”,如果它恰好是“编辑者”。这是在目标设置中。
然后你需要 1. 确保文档的内容没有改变,和/或 2. 告诉文档不要费心将自己显示为脏
但是,如果您想允许编辑和保存文档,则必须以正确的格式写回这些文件。这很重要,除了 TextEdit 的源代码可用并包含在 Xcode 中。但粗略一看,NSDocument 似乎已经支持 .doc 和 .docx。
您将在 /Xcode/Examples 中找到 TextEdit 的项目文件夹。
于 2010-07-21T23:35:33.337 回答