Я нашел решение.Во-первых, я вложил в класс реализации NSDocumentController и добавил в его файл реализации:
+ (void)restoreWindowWithIdentifier:(NSString *)identifier state:(NSCoder *)state completionHandler:(void (^)(NSWindow *, NSError *))completionHandler
{
NSInteger restorable = [state decodeIntegerForKey:@"restorable"];
if (!restorable) {
completionHandler(nil, [NSError errorWithDomain:NSCocoaErrorDomain code:NSUserCancelledError userInfo:nil]);
}
else {
[super restoreWindowWithIdentifier:identifier state:state completionHandler:completionHandler];
}
}
Затем я добавил код в свой файл реализации подкласса NSDocument
- (void) encodeRestorableStateWithCoder:(NSCoder *) coder {
if (self.fileURL){
[coder encodeInteger:1 forKey:@"restorable"];
} else {
[coder encodeInteger:0 forKey:@"restorable"];
}
[super encodeRestorableStateWithCoder:coder];
}
Таким образом, для любого безымянного флага установлено значение 0документ с нулевым fileURL и восстановлением не будет запуск.Другие документы восстановлены.