cocoa - NSSharingService - 删除 facebook 和 twitter 并添加打印

标签 cocoa osx-mountain-lion

我刚刚实现了一个共享按钮,它有一个共享菜单:

 [_shareButton sendActionOn:NSLeftMouseDownMask];

并连接此操作:

-(IBAction)share:(id)sender {   
    NSArray *shareArray = @[@"testShare"];
    NSSharingServicePicker *sharingServicePicker = [[NSSharingServicePicker alloc] initWithItems:shareArray];
    sharingServicePicker.delegate = self;

    [sharingServicePicker showRelativeToRect:[sender bounds]
                                      ofView:sender
                               preferredEdge:NSMinYEdge];
}

现在回答我的问题,我不希望 Facebook 和 Twitter 成为菜单中的选项。我只希望电子邮件和消息可用。我还想添加“打印”,但不知道是否可以做到。

这可能吗?

谢谢

(没有足够的代表点来添加“NSSharingService”作为标签)

最佳答案

通过使用proposeSharingServices解决了这个问题。

- (NSArray *)sharingServicePicker:(NSSharingServicePicker *)sharingServicePicker sharingServicesForItems:(NSArray *)items proposedSharingServices:(NSArray *)proposedServices{

// Find and the services you want
NSMutableArray *newProposedServices = [[NSMutableArray alloc] initWithCapacity:5];
for (NSSharingService *sharingService in proposedServices) {
    if ([[sharingService title] isEqualToString:@"Email"] || [[sharingService title] isEqualToString:@"Message"]) {
        [newProposedServices addObject:sharingService];
    }
}
NSArray *services = newProposedServices;

NSSharingService *customService = [[NSSharingService alloc] initWithTitle:@"Print" image:[NSImage imageNamed:@"PrintImage"] alternateImage:nil handler:^{
    // Do whatever
}];

services = [services arrayByAddingObject:customService];

return services;

}

关于cocoa - NSSharingService - 删除 facebook 和 twitter 并添加打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16067744/

相关文章:

cocoa - 我需要将 NSImage 中的一个颜色 channel 归零,正确的方法是什么?

macos - 在 OS X 上,将 SQLite 数据库放在哪里以防止其在更新期间被覆盖?

macos - 如何使用 XCode 4.6 和 OS X 10.8 设置 SDL2

cocoa - NSRunAlertPanel 显示在 "active window"后面

objective-c - 窗口出现时未设置标签上的文本

ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题

macos - OS X 10.8 (Mountain Lion) 更新后 MAMP Apache 无法启动

objective-c - 在 macOS 上获取当前用户的桌面路径

objective-c - 制作自定义 NSMenuItem View 时如何反转 NSImageNameMenuOnStateTemplate 图像?