macOS/iOS API解説

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

目次

panel:isValidFilename:

ファイル名をセットして保存するときに呼ばれます
-(BOOL)panel:(id)sender:
     isValidFilename:(NSString *)filename:

解説

ファイル名をセットして保存するときに呼ばれます。
ファイル名をチェックして適正なファイル名であればYESを返します。適正でないファイル名であればNOを返します。
オーバーライドして、拡張子のチェックなどに使います。

返り値

( BOOL )

YES/NO

引数

( id )sender

オブジェクト

( NSString * )filename

ファイル名

フレームワーク

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

//セーブパネルのデリゲート
-(BOOL)panel:(id)sender isValidFilename:(NSString *)filename
{

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