如何在Mac应用中添加“共享”子菜单?一个示例是Safari>文件>共享。我戳了Apple SharingServices sample code,但其中不包含可使用的菜单项。
现在,我有一个按钮,在点击该按钮时会显示可用共享服务的选择器:
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中创建的菜单项。
谢谢你的帮助。
最佳答案
查看NSSharingService的+ sharingServicesForItems:。在-validateMenuItem:方法中,您可以使用返回的NSSharingServices的-title和-image创建子菜单。将每个服务与每个菜单项相关联,然后将每个菜单项的操作指向此位置:
- (IBAction)shareFromService:(id)sender {
[[sender representedObject] performWithItems: arrayOfItemsToShare];
}
这真的很简单。苹果在这一方面做得很好。
关于macos - NSSharingService共享子菜单,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12378595/