Cocoa - 添加菜单以支持版本? (就像在TextEdit中一样)

时间:2012-12-11 13:18:01

标签: macos cocoa nsdocument autosave

在TextEdit中,如果您点击文件名旁边的小下拉菜单,您会看到一个菜单,其中显示了几个条目,包括RenameMove to iCloudMove ToDuplicateLock,最后是Browse All Versions

TextEdit

我想知道如何支持这个菜单?在我的应用程序上,我有披露指示器,但没有得到我点击它的菜单。我需要通过代码添加此菜单吗?如果是这样,我假设我需要以某种方式将它链接到窗口,但我没有看到适当的地方这样做。关于我缺少什么的任何建议?

SQL

2 个答案:

答案 0 :(得分:3)

在基于文档的应用程序中使用NSDocument子类时,“免费”获得此功能。只要您实现了此处列出的所有内容:

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

...版本控制应该“自动”工作,因为它直接受到实现自动保存的影响。

需要考虑的事项:

  1. 您定位的最低操作系统版本是什么?
  2. 您是否正在定制与Window标题栏有关的任何内容?
  3. 您的NSDocument子类是否实现了现代(非弃用)读/写方法,或者您正在做一些“陈旧或时髦”的事情?

答案 1 :(得分:0)

想出来。我压倒一切:

- (void)menuNeedsUpdate:(NSMenu *)menu

我不需要重写此方法,因此我删除了它。我一做到这一点,我的菜单就开始工作了。