How to show the share button in Mountain Lion?

后端 未结 3 1880
长发绾君心
长发绾君心 2021-02-03 12:06

Mountain Lion offers a built-in sharing button that reveals a menu of sharing services appropriate for the app:

\"Sh

相关标签:
3条回答
  • 2021-02-03 12:11

    To add the share button on Mountain Lion:

    1) Add a NSButton called, for example, shareButton.

    2) Add the standard image for this button:

    [shareButton setImage:[NSImage imageNamed:NSImageNameShareTemplate]];
    [shareButton sendActionOn:NSLeftMouseDownMask];
    

    3) Into the "on click action", present the NSSharingServicePicker:

    NSSharingServicePicker *sharingServicePicker = [[NSSharingServicePicker alloc] initWithItems:urls];
    sharingServicePicker.delegate = self;
    
    [sharingServicePicker showRelativeToRect:[sender bounds]
                                              ofView:sender
                                       preferredEdge:NSMinYEdge];
    

    4) Eventually, implement the NSSharingServicePickerDelegate methods to customize the picker’s available services.

    0 讨论(0)
  • 2021-02-03 12:13

    In Swift, I've used this:

    extension NSSharingService {
        class func shareContent ( content: [AnyObject], button: NSButton ) {
            let sharingServicePicker = NSSharingServicePicker (items: content )
    
            sharingServicePicker.showRelativeToRect(button.bounds, ofView: button, preferredEdge: NSRectEdge.MaxY)
        }
    }
    
    0 讨论(0)
  • 2021-02-03 12:22

    Note that if you're trying to add this button via Interface Builder:

    1. Select the button
    2. Switch to Attributes inspector
    3. Delete the button Title
    4. Insert: NSShareTemplate as the Image name.

    It doesn't look right to me in XCode, but works fine when run.

    PS - This appears to be a case where you need to use the System Icon string value (NSShareTemplate) instead of the constant (NSImageNameShareTemplate).

    0 讨论(0)
提交回复
热议问题