簡體   English   中英

使用 Cocoa 打開具有不同擴展名的文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM