应用程序Dock菜单,菜单项上有图像

时间:2016-07-22 22:33:07

标签: objective-c macos cocoa dock

使用-(NSMenu *)applicationDockMenu:(NSApplication *)sender我能够为应用程序停靠栏图标创建一个右键菜单,但是我无法将图像设置为其菜单项。

我在Google上发现了一些与此相关的结果,但它们来自多年前(Mac OS 10.2和10.3),并且在那个时候没有得到支持。有人知道这是否仍然不受支持,或者是否有某种方法可以做到这一点?

我也在答案中看到了最近的文件建议,但是,在我的情况下,我不能使用它;每个菜单项都有自己的操作,它们与特定文件无关。

  

https://stackoverflow.com/a/11418449/4370893

我的应用程序不在App Store中,因此如果该方法包含使用某些私有API,则没有问题。

编辑(2016年7月31日):好的,我放弃并决定使用最近的文档区域,但是仍然存在一个问题:需要不断更新菜单项,并且似乎我不能这样做(至少不是applicationDidFinishLaunching,它首先应该发生)。

以下代码未在最近的文档列表中产生任何更改:

NSDocumentController *docController = [NSDocumentController sharedDocumentController];
[docController clearRecentDocuments:nil];
for (int index = 0; index < items.count; index ++) {
    [docController noteNewRecentDocumentURL:[NSURL fileURLWithPath:[items[index] objectForKey:@"Path"]]];
}

注意:items是NSDictionary的NSArray,它总是有“Path”键,是的,我已经测试了它,所有这些都在那里;事实上,如果我使用:

NSLog(@"%@",docController.recentDocumentURLs);

我可以看到每个步骤后发生的变化,但是当我右键单击Dock图标(我的应用程序不是基于文档)时,这些更改不会出现,所以我无法确认是否同样适用于“打开最近的”菜单,因为它是不存在)。

编辑2(2016年7月31日):我刚刚发现该线程似乎与我遇到的问题相同。这解决了吗?

https://discussions.apple.com/thread/7328388?tstart=0

0 个答案:

没有答案