ファイルダイアローグ-ファイルのパスを取得する-

 ファイルを開いたり、保存したりするときファイルのパスを取得する必要があります。ファイルパスの取得にはOSのAPIを使用します。ここでは、Cocoa API(MacのAPI)を利用して、ファイルダイアローグからパスを取得する方法を紹介します。

ファイルを開く-オープンダイアローグ-

ファイルを開く際にはNSOpenPanelクラスを利用します。具体的には以下のようにします。

	NSOpenPanel *openPanel=[NSOpenPanel openPanel];
    NSArray *FileType=[NSArray arrayWithObjects:@"txt",@"'TEXT'",nil];
    [openPanel setAllowedFileTypes:FileType];
    if([openPanel runModal]!=NSOKButton){
        return;
    }
    NSLog(@"%@",[openPanel URL]);

FileTypeに開くファイルの情報を設定します。ここではtxtなのでテキストファイルを開くように設定しています。そして、

[openPanel runModal]

でダイアローグを実行しています。戻り値は

  • ファイルが選択された:NSOKButton
  • キャンセルが選択された:NSCancelButton

となります。

ファイルを保存する-セーブダイアローグ-

ファイルを保存するにはNSSavePanelクラスを使用します。

	NSSavePanel *savePanel=[NSSavePanel savePanel];
    NSArray *FileType=[NSArray arrayWithObjects:@"txt",@"'TEXT'",nil];
    [savePanel setAllowedFileTypes:FileType];
    if([savePanel runModal]!=NSOKButton){
        return;
    }
    NSLog(@"%@",[savePanel URL]);

FileTypeに保存するデータの種類を設定します。ここでは、テキストファイルを指定しています。setAllowedFileTypesでファイルを指定して、runModalでダイアローグを表示します。戻り値は

  • ファイルが選択された:NSOKButton
  • キャンセルが選択された:NSCancelButton

で、パスはURLメソッドで出力します。

著者:安井 真人(やすい まさと)