代码之家  ›  专栏  ›  技术社区  ›  Guillaume

在“打开最近的”菜单中添加一个不指向文件的项

  •  7
  • Guillaume  · 技术社区  · 14 年前

    有没有办法添加项目 它不指向文件系统中存在的文件 打开最近的菜单?

    在不基于NSDocument的应用程序中,我可以使用以下代码将项目添加到“Open Recent”子菜单:

    [[NSDocumentController sharedDocumentController] noteNewRecentDocumentURL:[NSURL URLWithString:stringToFilePath]];
    

    它的工作原理是 documented

    如果url没有指向系统上的文件,例如web url或自定义url方案,则什么也不会发生。

    例如,此代码无效,并且在执行期间不生成日志,即使我的应用程序处理URL中使用的方案:

    [[NSDocumentController sharedDocumentController] noteNewRecentDocumentURL:[NSURL URLWithString:@"http://www.stackoverflow.com"]];
    

    更新: 有人(很久以前)找到了一种方法来调整此菜单,使其显示文件是否存在: http://lists.apple.com/archives/cocoa-dev/2007/Apr/msg00651.html

    这并不奇怪,正如医生所说:

    由于 NSC通常不

    但医生没有说用什么代替,海报也没有给出更多细节。你知道吗?


    如果可能的话,我宁愿避免这种情况,因为我可以免费得到所有的东西(比如当你有两个同名的项目时,它也会显示父目录来帮助区分它们)。

    1 回复  |  直到 14 年前
        1
  •  6
  •   Joshua Nozzi    14 年前

    看起来你可能需要创建自己的菜单并维护自己的单独列表。此菜单自动排除不存在的文件。

    我相信这也适用于不存在的可移动媒体上的文件(即,如果媒体返回,我相信该文件在列表中再次可用,如果它没有被最近的项目取消)。