cocoa – 向“打开最近”菜单添加一个不指向文件的项目

cocoa – 向“打开最近”菜单添加一个不指向文件的项目,第1张

概述有没有办法将未指向文件系统上存在的文件的项目添加到“打开最近”菜单? 在不基于NSDocument的应用程序中,我可以使用以下代码将项目添加到“打开最近”子菜单: [[NSDocumentController sharedDocumentController] noteNewRecentDocumentURL:[NSURL URLWithString:stringToFilePath]]; 只要U 有没有办法将未指向文件系统上存在的文件的项目添加到“打开最近”菜单?

在不基于NSdocument的应用程序中,我可以使用以下代码将项目添加到“打开最近”子菜单:

[[NSdocumentController shareddocumentController] noteNewRecentdocumentURL:[NSURL URLWithString:stringTofilePath]];

只要URL指向文件系统上存在的文件,它就可以用作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

我成功地设法子类化NSdocumentController,但我从不调用我的方法 – (NSArray *)recentdocumentURLs.

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

This method is not a good one to
overrIDe since the internals of
NSdocumentController do not generally
use it.

但是文档没有说明要使用什么,而海报没有提供更多细节.任何的想法?

如果没有解决方案,解决方法是从头开始重写整个菜单.
如果可能的话,我宁愿避免这种情况,对于我免费获得的所有东西(比如当你有两个同名的项目时,它也会显示父目录以帮助区分它们).

解决方法 您可能需要创建自己的菜单并维护自己的单独列表.此菜单自动排除不存在的文件.

我相信对于不存在的可移动媒体上的文件也是如此(即,如果媒体返回,我相信如果文件没有被更新的项目推迟,则该文件在列表中再次可用).

总结

以上是内存溢出为你收集整理的cocoa – 向“打开最近”菜单添加一个不指向文件的项目全部内容,希望文章能够帮你解决cocoa – 向“打开最近”菜单添加一个不指向文件的项目所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1020429.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存