NSSharingService共享子菜单(NSSharingService Sharing Sub

2019-07-31 12:53发布

如何添加共享子在Mac应用程序? 一个例子是野生>文件>分享。 我戳在苹果SharingServices示例代码 ,但它不包括一个可以工作的菜单项。

现在我有触碰时会显示可用的共享服务选择器按钮:

NSMutableArray *shareItems = [NSMutableArray arrayWithObject:[self.noteSynopsisView string]];
NSSharingServicePicker *sharingServicePicker = [[NSSharingServicePicker alloc] initWithItems:shareItems];
sharingServicePicker.delegate = self;
[sharingServicePicker showRelativeToRect:[self.shareButton bounds] ofView:self.shareButton preferredEdge:NSMaxYEdge];

我也为我的MainWindow.xib文件菜单下定义的共享子菜单项。

据我了解,被实时生成的NSSharingService列表。 所以我真的不能预定义的服务,我已经在Interface Builder创建的菜单项。

谢谢你的帮助。

Answer 1:

看看NSSharingService的+ sharingServicesForItems :. 在-validateMenuItem:方法,你可以创建一个使用-title和-image它返回NSSharingServices的子菜单。 与每个菜单项关联的每个服务,并指出每个菜单项的这个动作:

- (IBAction)shareFromService:(id)sender {
  [[sender representedObject] performWithItems: arrayOfItemsToShare];
}

这真的很简单。 苹果的确在这一个好工作。



Answer 2:

我觉得要点可以帮助您轻松创建适当的服务的子菜单。 https://gist.github.com/eternalstorms/4132533

这是一个NSSharingServicePicker类别。



文章来源: NSSharingService Sharing Submenu