Я делаю приложение Cocoa, которое использует пакет документов (пакет) как его данные. Я указал расширение, и Finder теперь распознает папку с расширением как документ хорошо. Но расширение папки все еще отображается, и я хочу скрыть его по умолчанию (например, пакет приложений). Есть ли возможность сделать это?Как сделать тип пакета документа Cocoa с его расширением скрытым по умолчанию?
1
A
ответ
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;
}
Спасибо! Подходит ли этот подход для каждого файла или для каждого типа (или расширения)? Неужели невозможно установить поведение по умолчанию для моего типа файла? – Eonil
Это файл, он устанавливает расширенный атрибут в файле. Я не думаю, что есть способ установить это глобально. –