2012-02-15 3 views
0

Мое приложение может извлекать файлы .deb, но только если вы укажете, где с кнопками в приложении. Но я хочу, чтобы иметь возможность просто щелкнуть файл .deb и открыть приложение, выполнить действия, которые у меня уже есть, а затем выйти, когда это будет сделано. Прямо сейчас я использую NSWorspace, чтобы сообщить моему приложению, что он может открывать файлы .deb, но я не знаю, как заставить его запускать мои действия из этого. Является ли использование NSWorkspace даже правильной вещью? Я также должен иметь возможность получить Filepath файла, который открывается в строчном формате, и я, похоже, не могу это понять.Как использовать NSWorkspace, чтобы иметь возможность открыть файл? - Cocoa

+0

Вы могли бы хотеть рассмотреть вопрос о внесении [документ на основе приложения] (https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Documents/Documents.html), который предоставит вам возможности, позволяющие открыть файл с помощью кнопка. – ughoavgfhw

ответ

1

Я провел некоторые испытания, и это может быть интересно и для других. Решение выложено небольшим примером.

Создайте новый проект Cocoa в Xcode, перейдите к xib и добавьте ярлык в окно. Мы будем использовать его для доказательства концепции. Затем, некоторые вещи для вашего делегата приложения. Интерфейс:

#import <Cocoa/Cocoa.h> 

@interface fileClickerAppDelegate : NSObject <NSApplicationDelegate> { 
NSWindow *window; 
NSTextField *fileName; 
} 

@property (assign) IBOutlet NSWindow *window; 
@property (assign) IBOutlet NSTextField *fileName; 

@end 

Реализация довольно прямо вперед:

#import "fileClickerAppDelegate.h" 

@implementation fileClickerAppDelegate 

@synthesize window; 
@synthesize fileName; 

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 

} 

- (void)application:(NSApplication *)theApplication openFiles:(NSArray *)filenames { 

    [fileName setStringValue:[NSString stringWithFormat:@"Wow, even multiple files like %d :-)", [filenames count]]]; 
} 

@end 

Существует один способ, чтобы держать глаза на:

применения: openFiles.

Угадайте, что он делает? Он получает список файлов, переданных либо нажав на элемент на рабочем столе, либо в поисковом устройстве, либо перетащив файлы на значок. Он будет передан массив с именами файлов вместе с путями, стиль UNIX.

Моим испытаниям не требовалось устанавливать «Типы документов» в области приложения или делать причудливые записи регистрации с помощью искателя. Конечно, это может добавить ...

Это должно устранить вашу проблему, и вы можете делать все, что хотите, с вашими .deb-файлами (я предполагаю, что пакеты debian?).

Удачи вам!

Жизнь

PS: Только не забудьте подключить к NSTextField для управления GUI ;-) В противном случае, он будет работать, но ничего не отображается ....

+0

Спасибо, это здорово! Именно то, что я искал, и .deb, я имею в виду пакеты DEBIAN. Но как приложение знает, что я открываю этот тип файла? – drewsdunne

+0

Как приложение не отображается в finder как приложение, которое может открыть этот тип файла. Мне нужно вручную найти его и открыть его – drewsdunne

+0

Что вы подразумеваете под «не отображается в поиске»? Если вы имеете в виду «открыть с ...», вам необходимо вручную зарегистрировать тип приложения. Сначала перейдите к своему plist и добавьте ключ «Типы документов», это добавит массив с элементом. Будьте осторожны, используя правильный ключ! Массив содержит ключ для имени типа документа, значение должно быть deb. Ранг обработчика можно оставить в покое, пока (ссылка на документы). –

0

Просьба предоставить немного больше информации о том, что вы делаете, и, возможно, почему это не работает, например. г. аварийный сброс, выход gdb и т. д.

Трудно догадаться, что может помочь, если вы не сообщите нам, что я делаю.

+0

, так что в основном я хочу, чтобы мое приложение открывало файл, когда вы нажимаете его на рабочем столе, как будто это похоже на файл документа Word и запускает действие, которое я сделал, чтобы извлечь его. – drewsdunne

+0

У меня тоже нет кода. Я просто хочу быть в состоянии щелкнуть мой тип файла в finder и открыть его в моем приложении и запустить определенное действие, а затем закрыть – drewsdunne

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

  • Нет связанных вопросов^_^