2012-04-16 5 views
3

파일을 두 번 클릭 할 때 응용 프로그램과 함께 파일을 열고 싶습니다. 파일 형식을 응용 프로그램에 등록하고 응용 프로그램 아이콘에 파일을 놓으면 application: openFile: 메서드가 제대로 작동합니다. Apple 설명서에 따르면이 메서드는 사용자가 파일을 두 번 클릭 할 때도 작동해야한다고 말합니다.objective-c에서 파일을 더블 클릭하여 엽니 다.

내가보고있는 것은 두 번 클릭하여 파일을 열었을 때 앱이 활성화되지만 Safari가 파일을 엽니 다 (.webloc 파일을 열려고합니다). 이 file type reg

편집 : 그러나 호출되지 않습니다 application: openFile: 방법 :(여기

내가 엑스 코드에서 설정하는 방법입니다 제가 .webloc을 설정 한

가 같은 STANDART 엽니 내 . 응용 프로그램을 마우스 오른쪽 버튼으로 클릭하면 "연결 프로그램"> "내 앱"는 작동하지 않습니다

편집 2 :. 내가 .MP3 할 파일 확장자 또는 기타의 이름을 변경하는 경우, 내 응용 프로그램을 파일을 두 번 클릭하면 파일이 열립니다! 이상한 ...

답변

0

Xcode에서 "Mac OS X :: Cocoa Application"템플릿을 사용하여 새 프로젝트를 만듭니다. 그런 다음 구현하십시오

- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError 
{ static NSString *content = @"Empty File"; 
    return [NSData dataWithBytes: [content UTF8String] 
         length: 1 + strlen ([content UTF8String])]; } 

그러면 프로젝트와 비교할 수있는 실제 예제가 있습니다.

+0

제 질문이 약간 잘못 됐습니다. 아니면 귀하의 답변을 이해하지 못합니다 :(애플 문서에 그것은 말한다 : "지정된 유형으로 포맷 된 문서의 내용을 포함하는 데이터 개체를 생성하고 반환합니다."에 대한'dataOfType : error :'. 찾고있는 것은 사용자가 더블 클릭 한 파일을 열 수있는 방법입니다 – Silicone

+0

Xcode 프로젝트 예에서는 새 문서를 만들고 문서를 저장 한 다음 두 번 클릭하여 열 수 있습니다. 위의 코드는 다음과 같습니다. 파일을 저장하기 위해 바꿀 필요가있는 템플릿 코드 (내 답변에있는 메소드도 'YES'를 반환하도록 변경해야합니다.) 두 번 클릭하면 효과가 있지만 원래 질문을 해결하는 데 도움이됩니다. 물론 샘플 코드가 새로운 문서 유형 'mydoc'을 만들고 기존 문서 유형 'webloc'을 여는 것이므로 예제 코드가 도움이되지 않을 수 있습니다 – GoZoner

+0

속성 목록 편집기에서 "내 자신의".webloc 파일을 만들었지 만 방금 열린 크롬. 내가 ". webloc "확장 Safari가 열립니다. 확장자를 ".mp3"으로 변경하거나 예상대로 작동하는 경우 application : openFile :이 호출됩니다. S – Silicone

1

파일 형식을 처리 할 수있는 모든 응용 프로그램에서 파일을 두 번 클릭하면 열리지 않습니다 (JPEG를 두 번 클릭했을 때 어떤 현상이 나타날지 상상해보십시오) - 두 번 클릭하여 사용합니다 파일 형식의 기본 응용 프로그램입니다. 이 경우 Safari가 webloc 파일의 기본 판독기입니다. 호출하려는 응용 프로그램으로 변경하려면 응용 프로그램으로 변경해야합니다 (정보 입수 창에서이 작업을 수행 할 수 있습니다).

+0

:

이 게시물에 선정 대답은 내 문제를 해결하는 과정을 설명합니다. 또한 "연결 프로그램"> "내 응용 프로그램"을 선택하면 작동하지 않습니다. – Silicone

0

같은 유형의 파일을 여는 방법을 알고있는 여러 응용 프로그램을 가질 수 있습니다. 응용 프로그램이 .webloc 파일을 처리하도록하려면 해당 유형의 파일에 대해 정보 입수하십시오. 그런 다음 정보창의 "연결 프로그램 :"섹션의 팝업 메뉴에서 애플리케이션을 선택하십시오. 모든 파일에 응용 프로그램을 사용하려면 "모두 변경 ..."버튼을 클릭하십시오.

+0

내 응용 프로그램이이 종류의 파일을 열 때 기본 응용 프로그램으로 설정됩니다. "open with"도 작동하지 않습니다. – Silicone

+0

'-application : openFiles :'도 구현합니까? 그리고 문서에서 설명한대로 구현에서'-replyToOpenOrPrint :'를 호출하고 있습니까? – Caleb

+0

네,'application : openFiles :'도 제 코드에 있습니다. 또한 응용 프로그램 아이콘에 여러 파일을 놓을 때도 잘 작동합니다. 나는'replyToOpenOrPrint :'시도했지만 아무런 차이를 만들지 않았다.'application : openFile (s) :'의 코드는 호출되지 않습니다. – Silicone

1

나는 비슷한 문제를 직접 겪었으므로 나에게 도움이되는 것을 추가 할 것이다. 그 대신 .webloc 파일을 -application:openFile:을 호출하지 않는 대신, .webloc을 두 번 클릭하고 응용 프로그램에서 처리하도록하려는 경우 응용 프로그램이 URL의 기본 역할 처리기가되도록 여러 가지 작업을 수행해야합니다. 나는 기본적으로 내 응용 프로그램과 함께 열 수있는 파일을 설정 한 How do you set your Cocoa application as the default web browser?

관련 문제