Подменю совместного доступа NSSharingService
Как добавить подменю Share в приложении Mac? Например, Safari > File > Share. Я ткнул в пример кода Apple SharingServices, но он не включает рабочий элемент меню.
![enter image description here]()
Прямо сейчас у меня есть кнопка, которая отображает сборщик доступных служб совместного доступа при нажатии:
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];
Я также определил элемент подменю Share в меню "Файл" для моего MainWindow.xib.
Как я понимаю, список NSSharingService генерируется "на лету". Поэтому я не могу предопределить службы для элемента меню, который я создал в Interface Builder.
Спасибо за вашу помощь.
Ответы
Ответ 1
Посмотрите на NSSharingService + shareServicesForItems:. В методе -validateMenuItem: вы можете создать подменю, используя -title и -image возвращаемого NSSharingServices. Свяжите каждую службу с каждым пунктом меню и укажите действие каждого элемента меню следующим образом:
- (IBAction)shareFromService:(id)sender {
[[sender representedObject] performWithItems: arrayOfItemsToShare];
}
Это действительно довольно просто. Apple сделала хорошую работу на этом.
Ответ 2
Я нахожу, что суть может помочь вам легко создать подменю надлежащих сервисов.
https://gist.github.com/eternalstorms/4132533
Это категория NSSharingServicePicker.