2012-12-11 29 views
0

在文字编辑,如果你点击旁边的你得到它显示了几个条目,包括RenameMove to iCloudMove ToDuplicateLock最后Browse All Versions的菜单中的文件名的小下拉菜单。Cocoa - 添加菜单以支持版本? (如在文本编辑)

TextEdit

我不知道如何来支持这个菜单?在我的应用程序中,我有披露指示器,但没有我单击它的菜单。我是否需要通过代码添加此菜单?如果是这样,我假设我需要以某种方式将它链接到窗口,但我没有看到一个适当的地方这样做。对我失踪的任何建议?

SQL

+0

你有没有披露三角?我喜欢你的工具栏图标顺便说一句! – trojanfoe

+0

@trojanfoe我没有添加显示三角形。我一直在努力增加版本支持,并且一旦我为我的NSDocument对象返回了'preservesVersions'和'autosavesInPlace'的对象,就会出现显示三角形。感谢您对图标的评论,我会将其传递给设计师! – Kyle

回答

0

想通了。我重写:

- (void)menuNeedsUpdate:(NSMenu *)menu

我并不需要被重写此方法,所以我删除它。只要我这样做,我的菜单开始工作。

3

您在基于文档的应用程序中使用NSDocument子类时,得到这个功能“免费”。只要你已经实现了这里的一切概括:

http://developer.apple.com/library/mac/#documentation/DataManagement/Conceptual/DocBasedAppProgrammingGuideForOSX/StandardBehaviors/StandardBehaviors.html

...版本应该“自动的”,因为它是直接影响执行工作的自动保存。

需要考虑的事情:

  1. 什么是您所指定的最低操作系统版本?
  2. 您是否正在自定义与窗口标题栏有关的任何内容?
  3. 您的NSDocument子类是否实现了现代(不推荐使用)的读/写方法,或者您是在做一些“旧的还是时髦的”?
+0

1.我很好,支持10.7+ 2.我没有对标题栏进行任何自定义。 (NSData *)dataOfType:(NSString *)typeName错误:(NSError **)outError和' - (BOOL)readFromFileWrapper:(NSFileWrapper *)fileWrapper ofType :(NSString *)typeName错误:(NSError **)outError'。 我已经通过了该文件,并且相当肯定我已经增加了对所有内容的支持。我认为在这一点上,我将尝试创建一个基本的文本编辑应用程序,看看我能否使版本工作。 – Kyle

+0

看看你上面的答案,我会说“搞乱标题栏的菜单”算作“自定义任何与窗口标题栏有关的事情”。 :-)很高兴你找到它。请将您的答案标记为已接受,以解决问题。 –