macOS/iOS API解説

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

目次

panel:compareFilename:with:caseSensitive:

セーブパネルに表示するファイルブラウザの表示順をソートするときに呼ばれます
-(NSComparisonResult)panel:(id)sender:
     compareFilename:(NSString *)fileName1:
     with:(NSString *)fileName2:
     caseSensitive:(BOOL)flag:

解説

セーブパネルに表示するファイルブラウザの表示順をソートするときに呼ばれます。
二つの名前を比較して、どちらが大きいかを返します。
大文字、小文字の区別をするかをflagで受け取ります。
このメソッドを使うとソートして表示するので、パネルのパフォーマンスが下がります。

返り値

( NSComparisonResult )

比較結果

引数

( id )sender

オブジェクト

( NSString * )fileName1

ファイル名1

( NSString * )fileName2

ファイル名2

( BOOL )flag

フラグ

フレームワーク

ApplicationKit

クラス

NSSavePanel

Instance Methods

使用可能

10.0

参照

例文

#import "Controller.h"

@implementation Controller
- (IBAction)pushButton:(id)sender
{
NSSavePanel *spanel = [NSSavePanel savePanel];
//デリゲート設定
[spanel setDelegate:self];
//ファイルタイプ設定
[spanel setRequiredFileType:@"rtfd"];
//セーブパネル開く
[spanel beginSheetForDirectory:NSHomeDirectory()
    file:nil
    modalForWindow:myWindow
    modalDelegate:self
    didEndSelector:@selector(didEndSaveSheet:returnCode:conextInfo:)
    contextInfo:NULL];
}

//セーブパネルのデリゲート
-(NSComparisonResult)panel:(id)sender compareFilename:(NSString *)fileName1 with:(NSString *)fileName2 caseSensitive:(BOOL)flag
{
NSLog([NSString stringWithFormat:@"%@,%@",fileName1,fileName2]);
return [fileName1 compare:fileName2];
}

//パネル終了
-(void)didEndSaveSheet:(NSSavePanel *)savePanel returnCode:(int)returnCode conextInfo:(void *)contextInfo
{
if (returnCode == NSOKButton){
        //NSLog([[savePanel URL] absoluteString]);
}else{
NSLog(@"Cansel");
}
}
@end