macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

registerServicesMenuSendTypes:returnTypes:

INDEX>AppKit>NSApplication

送信タイプとリターンタイプでサービスメニューを登録します

Objective-C

- (void)registerServicesMenuSendTypes:(NSArray *)sendTypes
                          returnTypes:(NSArray *)returnTypes

Swift

func registerServicesMenuSendTypes(_ sendTypes: [AnyObject],
                       returnTypes returnTypes: [AnyObject])

解説

送信タイプとリターンタイプでサービスメニューを登録します。
サービスリクエストでレシーバーが送受信できるペーストボードタイプを登録します。

レシーバーがサービスメニューを持つならば、送信タイプとリターンタイプでメニューアイテムが追加されます。

返り値

なし

引数

Objective-C

( NSArray * )sendTypes

Swift

_ sendTypes: [AnyObject]

アプリが送信することができるそれぞれ対応する特定のペーストボードタイプを表すNSStringオブジェクトの配列

Objective-C

( NSArray * )returnTypes

Swift

returnTypes returnTypes: [AnyObject]

戻ってくるペーストボードのタイプの配列

フレームワーク

ApplicationKit

クラス

NSApplication

使用可能

10.0

編集時のバージョン

10.10

関連記事(外部サイト)

Using OPENSTEP API


Using Services

例文

Objective-C

#import "Controller.h"

@implementation Controller

- (IBAction)pushButton:(id)sender
{
	NSMenu *newMenu;
	NSArray *sendArray = [NSArray arrayWithObjects:@"NSPDFPboardType",@"NSPICTPboardType",@"NSPostScriptPboardType",@"NSTIFFPboardType",nil];
	NSArray *retArray = [NSArray arrayWithObjects:@"NSPDFPboardType",@"NSPICTPboardType",@"NSPostScriptPboardType",@"NSTIFFPboardType",nil];
	
	newMenu = [[NSMenu allocWithZone:[NSMenu menuZone]] initWithTitle:@"aaa"];
	[newMenu addItemWithTitle:@"aaaa"
					   action:nil
				keyEquivalent:@"e"
	 ];
	[[NSApplication sharedApplication] setServicesMenu:menu];
	[NSApp registerServicesMenuSendTypes:sendArray returnTypes:retArray ];
	
	//NSLog([[NSApp servicesMenu] description]);
	
}

@end

Swift

//NSApplication registerServicesMenuSendTypes
    //サービスメニューを登録 動いてない 調査中
    @IBAction func function045(sender: AnyObject) {
        //共有アプリケーションインスタンスを取得
        let anApplication = MyApplication.sharedApplication()
        //送信タイプ
        var sendArray = ["NSPDFPboardType","NSPICTPboardType","NSPostScriptPboardType","NSTIFFPboardType"]
        //リターンタイプ
        var retArray = ["NSPDFPboardType","NSPICTPboardType","NSPostScriptPboardType","NSTIFFPboardType"]
        
        var aMenu : NSMenu = NSMenu(title: "aaa")
        aMenu.addItemWithTitle("aaaaa", action: "serviceMethod" , keyEquivalent: "e")

        
        anApplication.servicesMenu = aMenu

        anApplication.registerServicesMenuSendTypes(sendArray,
            returnTypes: retArray)
        //NSLog("NSApplication dockTile %@",dockTile)
    }
    //サービスで呼び出されるメソッド
    func serviceMethod() {
        NSLog("serviceMethod")
    }