我想在 Finder 的上下文菜单中创建子菜单。我有一个使用服务 API 的小型原型应用程序......
#import "servicesAppDelegate.h"
@implementation servicesAppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[NSApp setServicesProvider:self];
NSUpdateDynamicServices();
}
- (void)handleServices:(NSPasteboard *)pboard
userData:(NSString *)userData
error:(NSString **)error
{
if([[pboard types] containsObject:NSFilenamesPboardType])
{
NSArray* fileArray=[pboard propertyListForType:NSFilenamesPboardType];
NSLog(@"fileArray:%@",fileArray);
}
}
@end
我们还有一个 services-Info.plist 文件...
<key>NSServices</key>
<array>
<dict>
<key>NSMenuItem</key>
<dict>
<key>default</key>
<string>OpenDrive </string>
</dict>
<key>NSMessage</key>
<string>handleServices</string>
<key>NSPortName</key>
<string>services</string>
<key>NSSendTypes</key>
<array>
<string>NSFilenamesPboardType</string>
</array>
</dict>
</array>
右键单击文件时,我们可以将单个菜单项添加到 Finder 的上下文菜单中。有谁知道向此菜单项添加子菜单的方法?我无法通过修改 plist 文件来做到这一点。它必须以某种方式使用服务 API 以编程方式完成......但我不确定这是否支持开始。我查看了“服务实施指南”,但解决方案对我来说并不明显。该指南讨论了将服务添加到应用程序..但是我想使用服务来更改不是我的应用程序的 Finder 的行为..对此的任何指导将不胜感激..谢谢。