2012-02-15 2 views
0

내 앱은 .deb 파일을 추출 할 수 있지만 앱에 버튼이있는 위치를 지정한 경우에만 가능합니다. 하지만 .deb 파일을 클릭하고 내 앱을 열어서 이미 수행 한 작업을 실행 한 다음 완료되면 종료합니다. 지금 NSWorspace를 사용하여 내 응용 프로그램에 .deb 파일을 열 수 있다고 알려주지 만 내 작업을 실행하는 방법을 모르겠습니다. NSWorkspace를 옳은 일로 사용하고 있습니까? 또한 문자열 형식으로 열리는 파일의 Filepath를 가져올 수 있어야하며이 파일을 처리 할 수없는 것일까 요?NSWorkspace를 사용하여 파일 형식을 여는 방법은 무엇입니까? - 코코아

+0

당신은을 고려하는 것이 좋습니다 [문서 기반 응용 프로그램] (https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Documents/Documents.html)을 사용하면 원하는 기능을 제공하면서도 단추. – ughoavgfhw

답변

1

나는 약간의 테스트를했는데 이것은 다른 사람들에게도 흥미로울 수 있습니다. 솔루션은 약간의 예를 들어 있습니다.

Xcode에서 새로운 Cocoa 프로젝트를 만들고 xib로 이동하여 레이블을 창에 추가하십시오. 우리는 개념 증명을 위해 그것을 사용할 것입니다. 다음으로 앱 위임에 대한 정보를 제공합니다. 인터페이스 :

#import <Cocoa/Cocoa.h> 

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

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

@end 

구현은 매우 정직 :

응용 프로그램 : openFiles에 눈을 유지하는 하나 개의 방법이 있습니다

#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 

.

무엇이 맞나요? 그것은 바탕 화면이나 파인더에서 항목을 클릭하거나 아이콘 위로 파일을 드래그하여 전달 된 파일 목록을받습니다. UNIX 스타일의 경로와 함께 파일 이름이 포함 된 배열이 전달됩니다.

내 테스트에서는 앱의 plist에 "문서 유형"을 설정하거나 멋진 항목으로 찾기를 요구하지 않았습니다. 물론, 이것은 추가 할 수 있습니다 ...

그게 문제를 해결해야하고 당신이 원하는대로 할 수 있습니다. 뎁 파일 (나는 데비안 패키지를 가정?).

행운을 빈다.

PS 생활 : 그냥 GUI 제어 ;-) 그렇지 않으면 작동하지만 아무것도 표시되지 않습니다에 NSTextField있는를 연결하는 것을 잊지 마세요 ....

+0

감사합니다. 정확히 내가 뭘 찾고 있었는지, 그리고 .deb는 DEBIAN 패키지를 의미합니다. 하지만이 파일 유형을 열 때 앱에서 어떻게 알 수 있습니까? – drewsdunne

+0

앱이 파인더에서이 파일 유형을 열 수있는 앱으로 표시되지 않는 것과 같습니다. 수동으로 검색하고 열어야합니다. – drewsdunne

+0

"파인더에 표시되지 않는다"는 것은 무엇을 의미합니까? "open with ..."을 말하는 경우 응용 프로그램 유형을 수동으로 등록해야합니다. 먼저 plist로 이동하여 "Document types"키를 추가하면 항목에 배열이 추가됩니다. 올바른 키를 사용하도록주의하십시오! 배열에는 문서 유형 이름에 대한 키가 포함되어 있습니다. 값은 deb 여야합니다. 핸들러 순위는 지금은 혼자 남겨 둘 수 있습니다 (참조 문서). –

0

exectly 무엇을하고 있으며 작동하지 않는 이유에 대한 정보를 조금 더 제공하십시오. e. 지. 크래시 덤프, gdb 출력 등이 포함됩니다.

내가 무슨 일을하고 있는지 말해주지 않으면 무엇이 도움이되는지 추측하기가 어렵습니다.

+0

그래서 기본적으로 내 응용 프로그램은 파일을 열 때 파일을 열 때 마치 워드 문서 파일처럼 동작을하고 싶습니다. 내가 추출한 동작을 실행합니다. – drewsdunne

+0

아무 코드 나 가지고 싶지 않습니다. 파인더에서 내 파일 형식을 클릭하고 내 앱에서 열어 특정 작업을 실행 한 다음 닫을 수 있습니다. – drewsdunne

관련 문제