2015-07-27 1 views
3

Selon Apple documentation, YouTube n'est pas inclus dans les services de partage disponibles. En effet, lorsque je consulte les extensions du menu Partage dans les Préférences Système, je ne le vois pas.Puis-je faire apparaître YouTube dans la feuille de partage de mon application OS X?

La présentation de la feuille de partage dans ma propre application en utilisant NSSharingServicePicker comme suit n'inclut pas YouTube non plus. Toutefois, lorsque vous utilisez la feuille de partage dans QuickTime Player ou iMovie, YouTube est une option, comme illustré ci-dessous. Existe-t-il un moyen d'afficher YouTube en tant qu'option dans mon application ou est-ce qu'Apple vient d'ajouter YouTube à ces applications sans l'ajouter à la liste complète du système d'exploitation?

YouTube sharing in QuickTime Player YouTube sharing in iMovie

+1

Comment est-ce hors sujet? Je demande en tant que développeur s'il y a un code/configuration que je peux écrire pour obtenir la fonctionnalité désirée. – DanielGibbs

Répondre

4

Il semble que l'option partage de vidéos YouTube ne sont pas disponibles au niveau du système d'exploitation et que QuickTime Player et iMovie mettre en œuvre eux-mêmes. Si vous implémentez le mécanisme de partage vous (par exemple en utilisant Google's Objective C API), vous pouvez créer un menu de partage contenant YouTube comme suit (cela suppose que vous avez une sous-classe appelée NSSharingServiceYouTubeSharingService):

- (void)addSharingMenuItemsToMenu:(NSMenu *)menu { 
    // Get the sharing services for the file. 
    NSMutableArray *services = [[NSSharingService sharingServicesForItems:@[self.fileURL]] mutableCopy]; 
    [services addObject:[YouTubeSharingService new]]; 

    // Create menu items for the sharing services. 
    for (NSSharingService *service in services) { 
     NSMenuItem *menuItem = [[NSMenuItem alloc] init]; 
     menuItem.title = service.menuItemTitle; 
     menuItem.image = service.image; 
     menuItem.representedObject = service; 
     menuItem.target = self; 
     menuItem.action = @selector(executeSharingService:); 
     [menu addItem:menuItem]; 
    } 
} 

- (void)executeSharingService:(id)sender { 
    if ([sender isKindOfClass:[NSMenuItem class]]) { 
     NSMenuItem *menuItem = sender; 
     if ([menuItem.representedObject isKindOfClass:[NSSharingService class]]) { 
      NSSharingService *sharingService = menuItem.representedObject; 
      [sharingService performWithItems:@[self.fileURL]]; 
     } 
    } 
}