2013-09-20 2 views
0

Я приступил к созданию приложения OS X и зарегистрировал сервис (т. Е. Пункт меню правой кнопки мыши на файлах в Finder), и все работает, за исключением того, что ОС, похоже, не отправляет читаемый файл в мое приложение, когда я прав -включить файл в Finder и выбрать опцию «Открыть с помощью MyProgram».Как получить путь к файлу в моем приложении, который вызывается как служба в os x?

Мой приемный обработчик:

- (void)doSomething:(NSPasteboard *)pboard userData:(NSString *)userData error:(NSString **)error { 
NSString *pboardString = [pboard stringForType:NSStringPboardType]; 
NSLog(@"I hope the file path is: %@", pboardString); 
} 

С выше коде pboardString будет на самом деле содержат нечетное такие вещи, как: "файл: ///.file/id=6562758.3327676"

, который может быть нежелательной, или может быть переведена на что-то полезное; Я не знаю. Я получаю шестнадцатеричные результаты, такие как < NSPasteboardItem: 0x103b37d90 >, если я попытаюсь напечатать картонный объект в виде массива.

Я не уверен, если это проблема с эксплуатационными свойствами (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/SysServices/Articles/properties.html), но если кто-нибудь знает, что я пропускаю я оценил бы руководство ..

ответ

1

Вы можете получить доступ к пути к файлам, глядя в NSPasteboard «s propertyListForType:

И использовать NSFilenamesPboardType

- (void)doSomething:(NSPasteboard *)pboard userData:(NSString *)userData error:(NSString **)error { 

    NSArray *files = [pboard propertyListForType:NSFilenamesPboardType]; 
    NSLog(@"I hope the file path is files: %@", files); 

} 

Вы должны прочитать документацию, я связан с выше

+0

Отлично. Я начал работать с Obj-C около недели назад .. даже не был уверен, как найти все остальные вещи, скрывающиеся в картоне. Не было уверенности, что в нем скрываются другие вещи! – Eric

+0

Вот видео, показывающее один способ узнать это. Я признаю, что видео - небольшой эксперимент, чтобы посмотреть, как я могу опубликовать его в своем блоге. Но это должно быть полезно, если вы еще не знаете наконечник. http://www.markosx.com/thecocoaquest/videos-2/videos/ – markhunte

Смежные вопросы