gpt4 book ai didi

macos - NSSharingService 共享子菜单

转载 作者:行者123 更新时间:2023-12-03 16:03:14 27 4
gpt4 key购买 nike

如何在 Mac 应用程序中添加共享子菜单?例如 Safari > 文件 > 共享。我戳了一下Apple SharingServices sample code ,但它不包含工作菜单项。

enter image description here

现在我有一个按钮,点击时会显示可用共享服务的选择器:

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 的"file"菜单下定义了“共享”子菜单项。

据我了解, 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/

27 4 0