Как я могу заставить мое приложение (не основанное на документах) отвечать на openFile: withApplication :? - PullRequest
1 голос
/ 16 августа 2011

У меня есть приложение, которое представляет собой однооконное приложение, не основанное на документах.

Я хочу, чтобы оно отвечало на NSWorkspace-openFile: withApplication:, но только когда путь кпапку, а также реализовать меню Файл-> Открыть.У меня проблемы с поиском, как это сделать (не становясь приложением на основе документов).

Ответы [ 2 ]

1 голос
/ 16 августа 2011

Вам необходимо настроить NSOpenPanel для приема каталогов:

[myOpenPanel setCanChooseDirectories:YES];
1 голос
/ 16 августа 2011

Просто проверьте, к какому действию подключен пункт меню «Открыть» в Интерфейсном Разработчике.Если я правильно помню, он будет связан с объектом «Первый ответчик» и методом open:.Это правильно?

В этом случае просто реализуйте метод open: в своем классе AppDelegate.(Чтобы понять, почему метод переходит к делегату, прочитайте о «действиях с нулевым таргетингом» в книге Хиллегаса или здесь: http://www.cocoadev.com/index.pl?NilTargetedAction. Следует помнить, что элемент управления, подключенный к «Первому ответчику» в IB,на самом деле способ IB - указать, что целью является ноль.)

Обратите внимание, что вам придется реализовать открытую панель самостоятельно, используя NSOpenPanel - см. пример кода здесь: NSOpenPanel setAllowedFileTypes

Если это то же самое, что вы делаете в openFile:withApplication:, вы, вероятно, захотите создать общий закрытый метод и вызвать этот метод как из openFile:withApplication:, так и open:.

...