Добавьте к меню “Open Recent” объект, который не указывает на файл

Существует ли способ добавить объект, который не указывает на файл, который существует в файловой системе к меню "Open Recent"?

В приложении не на основе NSDocument, я могу добавить объект к подменю "Open Recent" со следующим кодом:

[[NSDocumentController sharedDocumentController] noteNewRecentDocumentURL:[NSURL URLWithString:stringToFilePath]];

Это работает, как зарегистрировано, пока URL указывает на файл, который существует в файловой системе.

Если URL не указывает на файл в системе, такой как веб-URL или пользовательская схема URL, ничего не происходит.

Например, этот код не имеет никакого эффекта, и не произведите журнал во время выполнения, даже если мое приложение обрабатывает схему, используемую в URL:

[[NSDocumentController sharedDocumentController] noteNewRecentDocumentURL:[NSURL URLWithString:@"http://www.stackoverflow.com"]];

Обновление: кто-то нашел (давным-давно) способ настроить это меню, чтобы иметь его выставочные файлы, существуют ли они или нет: http://lists.apple.com/archives/cocoa-dev/2007/Apr/msg00651.html

Мне успешно удалось разделить NSDocumentController на подклассы, но мое переопределение метода - (NSArray *) recentDocumentURLs никогда не называют.

Это не очень удивительно, как говорится в документе:

Этот метод не является хорошим для переопределения, так как внутренности NSDocumentController обычно не используют его.

Но в документе не говорится, что использовать вместо этого, и плакат не предоставлял больше подробную информацию. Какая-либо идея?


Если бы нет никакого решения, на обходном решении должен был бы переписать все меню с нуля. Если возможно, я предпочел бы избегать, чтобы, для всего материала я добрался бесплатно (как то, когда у Вас есть два объекта с тем же именем, он отображает родительский каталог также, чтобы помочь дифференцировать их).

7
задан John Topley 13 July 2010 в 14:37
поделиться

1 ответ

Похоже, вам, вероятно, придется создать собственное меню и вести свой собственный отдельный список. Это меню автоматически исключает файлы, которых не существует.

Я считаю, что это также верно для файлов на съемных носителях, которые отсутствуют (то есть, если носитель возвращается, я считаю, что файл снова доступен в списке, если он не был вытеснен более поздними элементами ).

6
ответ дан 7 December 2019 в 09:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: