2012-08-05 3 views

risposta

21

Per aggiungere il pulsante di condivisione su Mountain Lion:

1) Aggiungere un NSButton chiamati, per esempio, shareButton.

2) aggiungere l'immagine standard per questo pulsante:

3) Into the "azione sul click", presenterà il NSSharingServicePicker:

NSSharingServicePicker *sharingServicePicker = [[NSSharingServicePicker alloc] initWithItems:urls]; 
sharingServicePicker.delegate = self; 

[sharingServicePicker showRelativeToRect:[sender bounds] 
              ofView:sender 
            preferredEdge:NSMinYEdge]; 

4) Alla fine, implementare i metodi NSSharingServicePickerDelegate per personalizzare i servizi disponibili del selettore.

1

Si noti che se si sta cercando di aggiungere questo pulsante tramite Interface Builder:

  1. Selezionare il pulsante
  2. Passa alla Attributi
  3. Elimina il pulsante Titolo
  4. Inserire: NSShareTemplate come il Nome dell'immagine

Non mi sembra corretto in XCode, ma funziona correttamente durante l'esecuzione.

PS - Questo sembra essere un caso in cui you need to use the System Icon string value (NSShareTemplate) anziché la costante (NSImageNameShareTemplate).

+0

sconsiglia l'utilizzo di IB per impostare l'immagine. Funziona solo quando lo si imposta tramite codice. Inoltre, aggiungere anche la seguente riga in seguito: "[shareButton sendActionOn: NSLeftMouseDownMask];" – Arvin

0

In Swift, ho usato questo:

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

     sharingServicePicker.showRelativeToRect(button.bounds, ofView: button, preferredEdge: NSRectEdge.MaxY) 
    } 
} 
+0

come si usa? – user1374