2011-06-06 113 views
0

我有一個已經處理* .txt文件的基於NSDocument的應用程序。我可以將這些文件拖放到擴展塢中,我的應用程序將正確啓動。用Cocoa打開帶有不同擴展名的文件

現在我想能夠打開* .text文件。所以我說:

<key>CFBundleTypeExtensions</key> 
    <array> 
     <string>.txt</string> 
     <string>.text</string> 
    </array> 

我*的plist

但我無法打開受拖累& *的.text文件在被告席上投下他們。 (我可以做MyApp> File> Open> myFile.text) 我可以照常打開* .txt,並將它們拖放到擴展塢中。

我試過實現這些NSApp委託方法,但現在我得到一個錯誤,我無法打開任何類型的文件。

- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename{ 
    NSURL *url = [NSURL URLWithString:filename]; 
    NSError *error = nil; 
    [[NSDocumentController sharedDocumentController] openDocumentWithContentsOfURL:url display:YES error:&error]; 
    if (error) { 
     NSLog(@"error: %@", [error localizedDescription]); 
     error = nil; 
     return NO; 
    } 
    return YES; 
} 

- (void)application:(NSApplication *)sender openFiles:(NSArray *)filenames{ 
    for (NSString *filename in filenames) { 
     [self application:sender openFile:filename]; 
    } 
} 

錯誤:

typeForContentsOfURL:error: must be overridden for your application to support non-'file:' URLs.

我沒有繼承NSDocumentController,所以我真的需要?或者有沒有更好/更簡單的方法來做到這一點?

在此先感謝

回答

0

文件擴展名的的Info.plist文件不應包含一段文字(.)。如果你這樣做會發生什麼?:

<key>CFBundleTypeExtensions</key> 
    <array> 
     <string>txt</string> 
     <string>text</string> 
    </array> 
+0

修正了......它沒有工作 – nacho4d 2011-06-06 07:46:24

相關問題