Mountain Lion 提供了一个内置共享按钮,可显示适合该应用程序的共享服务菜单:
如何将其插入我的应用程序?
在 Mountain Lion 上添加分享按钮:
1)添加一个NSButton
被叫,例如,shareButton
。
2)为该按钮添加标准图像:
[shareButton setImage:[NSImage imageNamed:NSImageNameShareTemplate]];
[shareButton sendActionOn:NSLeftMouseDownMask];
3)进入“点击动作”,呈现NSSharingServicePicker
:
NSSharingServicePicker *sharingServicePicker = [[NSSharingServicePicker alloc] initWithItems:urls];
sharingServicePicker.delegate = self;
[sharingServicePicker showRelativeToRect:[sender bounds]
ofView:sender
preferredEdge:NSMinYEdge];
4)最终,实现NSSharingServicePickerDelegate
自定义选择器可用服务的方法。
在 Swift 中,我使用了这个:
extension NSSharingService {
class func shareContent ( content: [AnyObject], button: NSButton ) {
let sharingServicePicker = NSSharingServicePicker (items: content )
sharingServicePicker.showRelativeToRect(button.bounds, ofView: button, preferredEdge: NSRectEdge.MaxY)
}
}
请注意,如果您尝试通过 Interface Builder 添加此按钮:
它在 XCode 中对我来说看起来不正确,但在运行时工作正常。
PS - 这似乎是您需要使用系统图标字符串值(NSShareTemplate)而不是常量(NSImageNameShareTemplate)的情况。