ドキュメントパッケージ(バンドル)をデータとして使用するCocoaアプリケーションを作成しています。拡張子を指定すると、Finder は拡張子の付いたフォルダをドキュメントとして適切に認識するようになりました。しかし、フォルダの拡張子がまだ表示されているので、デフォルトで非表示にしたい (アプリケーション バンドルのように) これを行うオプションはありますか?
質問する
1754 次
1 に答える
3
-setAttributes:ofItemAtPath:error:
のメソッドを使用してNSFileManager
、任意のファイルのファイル属性を設定できます。この場合、NSFileExtensionHidden
キーの値を設定します。
これを保存したドキュメントに適用するに-writeToURL:ofType:error:
は、サブクラスでオーバーライドしNSDocument
、ドキュメントが保存されたらファイル拡張子を非表示に設定します。
- (BOOL)writeToURL:(NSURL *)absoluteURL ofType:(NSString *)typeName error:(NSError **)outError
{
//call super to save the file
if(![super writeToURL:absoluteURL ofType:typeName error:outError])
return NO;
//get the path of the saved file
NSString* filePath = [absoluteURL path];
//set the file extension hidden attribute to YES
NSDictionary* fileAttrs = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES]
forKey:NSFileExtensionHidden];
if(![[NSFileManager defaultManager] setAttributes:fileAttrs
ofItemAtPath:filePath
error:outError])
{
return NO;
}
return YES;
}
于 2010-02-09T01:00:08.127 に答える