[英]opening files with different extensions with Cocoa
我有一個已經處理 *.txt 文件的基於 NSDocument 的應用程序。 我可以將這些文件拖放到 Dock 中,我的應用程序將正確啟動。
現在我也希望能夠打開 *.text 文件。 所以我添加了:
<key>CFBundleTypeExtensions</key>
<array>
<string>.txt</string>
<string>.text</string>
</array>
到我的 *plist
但是,我無法通過將 *.text 文件拖放到 Dock 中來打開它們。 (我可以執行 MyApp> File>Open> myFile.text )我可以像往常一樣打開 *.txt,然后將它們拖放到 Dock 中。
我已經嘗試實現這些 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: 必須覆蓋您的應用程序才能支持非'file:' URL。
我沒有繼承 NSDocumentController,所以我真的需要嗎? 或者有更好/更簡單的方法嗎?
提前致謝
Info.plist文件中的文件擴展名不應包含句點字符 ( .
)。 如果你這樣做會發生什么?:
<key>CFBundleTypeExtensions</key>
<array>
<string>txt</string>
<string>text</string>
</array>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.