Как я заставляю приложение OS X реагировать, когда файл, изображение, и т.д. отбрасывается на его значке панелей?

Тогда проблема вернулась. Я удалил Microsoft.CodeDom.Providers.DotNetCompilerPlatform и Uninstall-пакет Microsoft.Net.Compilers, но не помог. Затем не было никакой помощи. Убрал проект и не помог. Перезагруженный сервер не помог. Затем я заметил, что проект не нужен не последнему, который в настоящее время составляет 1.0.5, а 1.0.3, так как это ошибка не могла загрузить версию 1.0.3. Поэтому я установил эту версию dll, и теперь она работает.

15
задан stalepretzel 1 February 2009 в 18:44
поделиться

2 ответа

NSApplication позволяет Вам устанавливать делегата к своему приложению. Если пользователь перетащит файл на Ваш значок панелей, то NSApplication назовет метод

- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename

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

- (BOOL)applicationOpenUntitledFile:(NSApplication *)theApplication

называют.

Видят ссылка класса NSApplication

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

whatever = [[YourObject alloc] init];
[[NSApplication sharedApplication] setDelegate:whatever];

И вот именно. Как только файл или некоторое другое содержание отбрасываются на значок панелей, соответствующий метод называют и должен обработать тот запрос. BTW, которым называют те же методы, если Ваши партнеры приложения типа файла (например, .myFileType) и пользователь дважды щелкает по файлу с тем расширением в Средстве поиска.

то, Что действительно происходит негласно, - то, что Launch Services посылает Ваше заявление "открытые документы" ('odoc') Событие Apple. NSApplication значением по умолчанию регистрирует дескриптор для этого события и передает запрос путем вызова соответствующего метода делегата. Можно ли также непосредственно слушать это Событие Apple, которое я предполагаю, но почему был бы Вы? Контакт с Событиями Apple непосредственно является неловким. Когда Вашим приложением не является Какао, но Углерод (плоскость-C), Вам, вероятно, придется непосредственно обработать Событие Apple (я не знаком с Углеродом), но в Какао Apple уже ловит самые важные События Apple для Вас и преобразовывает их в вызовы делегата или уведомления, которые может слушать Ваше приложение.

20
ответ дан 1 December 2019 в 02:47
поделиться

Если Ваше приложение основано на документе, и Вы заполнили необходимые ключи в Вашем Info.plist правильно, то оно Просто Работы. Когда пользователь перетащит файл к мозаике Прикрепления Вашего приложения, Прикрепление выделит Ваше приложение на мозаике, если файл будет иметь тип, Вы зарегистрировались в, и если пользователь отбросит файл там, то NSDocumentController инстанцирует одного из Ваших классов документов для файла. Если файл не имеет типа, Вы зарегистрировались в, оба проигнорируют его.

Так, Ваше основанное на документе приложения? Если так, является файл одним из типа, в котором Вы зарегистрировались?

Для получения дополнительной информации:

6
ответ дан 1 December 2019 в 02:47
поделиться