RCBRightClick 0.1.4

RCBRightClick 0.1.4

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2015年9月

Confused Vorlon 维护。




  • Rob

一个用于 Mac OS 的简单文件管理器集成。Mavericks 引入了文件扩展,因此开发人员可以最终将右键点击动作集成到文件管理器中。尽管如此,集成并不容易——文件扩展的开发相当痛苦。

RCBRightClick 提供了简单的文件管理器集成。您只需注册操作名称,要调用的方案以及选中文件的详细信息(以及可选地)您感兴趣的文件类型。

Right Click Booster 是 Mac App Store 上的一款免费应用程序,允许用户在文件管理器中文件的右键上运行脚本。

它使用文件扩展来完成此操作——这个过程相当痛苦。

现在它提供了一个接口,您可以直接将右键动作添加到您的应用程序中,而无需构建完整的文件扩展,也不需要通过应用商店发布您的应用程序。

安装

使用 Cocoapods 安装

pod 'RCBRightClick'

您的扩展应在用户操作的结果(例如点击一个“是的,请执行此操作”按钮)后安装。

[RCBRightClick registerExtensionWithName:@"Do something in my app"
                                  scheme:@"myscheme"];

如果尚未安装,将提示用户安装 Right Click Booster。

一旦安装了 Right Click Booster,他们将要求确认是否希望安装此扩展。

当用户点击链接时,您的应用程序将通过您注册的方案被调用。

Image of simple item

要获取回调,您需要在您的 App Delegate 中添加以下操作:

1) 在 init 方法中,注册您的 URL 处理程序

-(id)init
{
    self=[super init];
    if (self)
    {
        [[NSAppleEventManager sharedAppleEventManager] setEventHandler:self
                                                           andSelector:@selector(handleURLEvent:withReplyEvent:)
                                                         forEventClass:kInternetEventClass
                                                            andEventID:kAEGetURL];
    }

    return self;
}

现在您可以处理回调。[RCBRightClick pathsFromURL:url] 提供了一个所选路径的数组。

- (void)handleURLEvent:(NSAppleEventDescriptor*)event withReplyEvent:(NSAppleEventDescriptor*)replyEvent
{
    NSString *urlString = [[event paramDescriptorForKeyword:keyDirectObject] stringValue];
    NSURL *url=[NSURL URLWithString:urlString];
    NSString *scheme = [[url scheme] lowercaseString];

    NSLog(@"scheme: %@, string: %@",scheme,urlString);

    if ([scheme isEqualToString:@"myscheme"])
    {
        [[NSAlert alertWithMessageText:@"My extension called"
                         defaultButton:@"Ok"
                       alternateButton:nil
                           otherButton:nil
             informativeTextWithFormat:@"Called for paths:\n%@",[RCBRightClick pathsFromURL:url]] runModal];
    }
}

最后,您需要在项目的信息选项卡中添加您的方案作为 URL 类型。

Image of URL scheme

高级

您可以为您的扩展注册更多信息...

[RCBRightClick registerExtensionWithName:@"RCB PNG JPEG Test"
                                  scheme:@"rcbtest2"
                               filetypes:@[@"png",@"jpg",@"jpeg"]
                                   image:[NSImage imageNamed:@"113-navigation.png"]
                          callbackScheme:@"rcbdemocallback"
 ];

filetypes 是一个逗号分隔的类型列表,当这些类型被触发时,应调用您的扩展。如果您想接收目录,可以使用 @"directory"。

image 允许您设置一个图像,该图像将在您的操作右侧点击选项中出现

callback scheme 允许您注册一个回调,以便 RCB 返回有关扩展是否成功安装的信息。它遵循 x-callback-url 规范。有关处理回调的信息,请参阅演示项目。

示例

示例项目展示了各种扩展的安装和处理方法,包括安装回调,以及如何从回调响应中获取路径。

告知我

如果您使用RCB - 请告知我,以便我可以记录与RCB兼容的应用程序列表。(或者简单地将您的应用程序添加到维基页面)。