4

我想在 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 的行为..对此的任何指导将不胜感激..谢谢。

4

0 回答 0