14

Mac アプリに共有サブメニューを追加するにはどうすればよいですか? 例として、[Safari] > [ファイル] > [共有] があります。Apple SharingServicesのサンプル コードを調べてみましたが、機能するメニュー項目が含まれていません。

ここに画像の説明を入力

現在、タップすると利用可能な共有サービスのピッカーを表示するボタンがあります。

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

また、MainWindow.xib の [ファイル] メニューの下に [共有] サブメニュー項目を定義しました。

私が理解しているように、NSSharingService リストはオンザフライで生成されています。そのため、Interface Builder で作成したメニュー項目にサービスを事前定義することはできません。

ご協力いただきありがとうございます。

4

3 に答える 3

16

NSSharingService の +sharingServicesForItems: を見てください。-validateMenuItem: メソッドでは、返される NSSharingServices の -title と -image を使用してサブメニューを作成できます。各サービスを各メニュー項目に関連付け、各メニュー項目のアクションを次のように指定します。

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

それは本当にとても簡単です。Apple はこれに関して良い仕事をした。

于 2012-09-19T01:54:10.950 に答える
7

要点は、適切なサービスのサブメニューを簡単に作成するのに役立つと思います。 https://gist.github.com/eternalstorms/4132533

これはNSSharingServicePickerカテゴリです。

于 2013-03-06T07:29:07.697 に答える