我想在Finder的上下文菜单中创建子菜单。我有一个使用Services 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文件来完成它。必须以某种方式使用Services API以编程方式完成...但我不确定是否支持这一点。我查看了“服务实施指南”,但解决方案对我来说并不明显。该指南讨论了向应用程序添加服务。但是我想使用服务来更改Finder的行为,这不是我的应用程序..对此的任何指导都将非常感谢..谢谢。