Sous-Programme Nssharingservice Sharing

Comment puis-je ajouter le sous-menu de partage dans une application Mac? Un exemple est Safari > File > Share. J'ai fourré à l' Apple SharingServices exemple de code, mais il n'inclut pas un élément de menu de travail.

enter image description here

en ce moment, j'ai un bouton qui affiche un picker des services de partage disponibles quand il est activé:

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];

j'ai aussi défini un sous-menu de partage dans le menu Fichier pour mon MainWindow.xib.

si je comprends bien, l' La liste NSSharingService est générée à la volée. Donc je ne peux pas vraiment prédéfini les services à l'élément de menu que j'ai créé dans Interface Builder.

Merci pour votre aide.

11
demandé sur DenVog 2012-09-12 02:03:41

2 réponses

regardez Nssharingservice's +sharingServicesForItems:. Dans a-validateMenuItem: method vous pouvez créer un sous-menu en utilisant le-titre et l'image des NSSharingServices qu'il renvoie. Associez chaque service à chaque élément de menu, et pointez l'action de chaque élément de menu à ceci:

- (IBAction)shareFromService:(id)sender {
  [[sender representedObject] performWithItems: arrayOfItemsToShare];
}

C'est vraiment très simple. Apple a fait du bon travail sur celui-ci.

13
répondu Mel 2012-09-19 01:54:10

je trouve l'essentiel de l'information peut vous aider à créer facilement un sous-menu des services appropriés. https://gist.github.com/eternalstorms/4132533

c'est une catégorie NSSharingServicePicker.

6
répondu 6 1 2013-03-06 07:29:07