Как сделать тип пакета документов Какао с его расширением скрытым по умолчанию? - PullRequest
1 голос
/ 03 февраля 2010

Я делаю приложение Какао, которое использует пакет документов (пачка) в качестве данных. Я указал расширение, и Finder теперь распознает папку с расширением как документ. Но расширение папки по-прежнему отображается, и я хочу скрыть его по умолчанию (например, комплект приложений). Есть ли возможность сделать это?

1 Ответ

3 голосов
/ 09 февраля 2010

Вы можете использовать -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;
}
...