我刚刚实现了一个共享按钮,它有一个共享菜单:
[_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/