10

Mountain Lion 提供了一个内置共享按钮,可显示适合该应用程序的共享服务菜单:

Safari 6.0 中的共享按钮

如何将其插入我的应用程序?

4

3 回答 3

24

在 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自定义选择器可用服务的方法。

于 2012-08-05T10:19:57.557 回答
4

在 Swift 中,我使用了这个:

extension NSSharingService {
    class func shareContent ( content: [AnyObject], button: NSButton ) {
        let sharingServicePicker = NSSharingServicePicker (items: content )

        sharingServicePicker.showRelativeToRect(button.bounds, ofView: button, preferredEdge: NSRectEdge.MaxY)
    }
}
于 2016-02-25T23:05:37.537 回答
0

请注意,如果您尝试通过 Interface Builder 添加此按钮:

  1. 选择按钮
  2. 切换到属性检查器
  3. 删除按钮标题
  4. 插入:NSShareTemplate 作为图像名称。

它在 XCode 中对我来说看起来不正确,但在运行时工作正常。

PS - 这似乎是您需要使用系统图标字符串值(NSShareTemplate)而不是常量(NSImageNameShareTemplate)的情况。

于 2012-09-06T22:39:54.817 回答