用Cocoa打开带有不同扩展名的文件
问题描述:
我有一个已经处理* .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,所以我真的需要?或者有没有更好/更简单的方法来做到这一点?
在此先感谢
答
文件扩展名的的Info.plist文件不应包含一段文字(.
)。如果你这样做会发生什么?:
<key>CFBundleTypeExtensions</key>
<array>
<string>txt</string>
<string>text</string>
</array>
修正了......它没有工作 – nacho4d 2011-06-06 07:46:24