0

我正在编写一个可以打开任何类型的基于文档的 Mac 应用程序。我的应用程序在其 Dock 磁贴上成功接收到任何类型的拖放文件,但是当我从“文件”菜单中选择“打开”时,所有文件都显示为灰色。

是模板自带的标准Open项目;我没有在它后面放任何特别的东西。

这是我的 Info.plist 的相关部分:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFile</key>
        <string></string>
        <key>CFBundleTypeName</key>
        <string>Any file</string>
        <key>CFBundleTypeOSTypes</key>
        <array>
            <string>****</string>
        </array>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSTypeIsPackage</key>
        <false/>
        <key>NSDocumentClass</key>
        <string>MyDocument</string>
    </dict>
</array>

我有一个自定义文档控制器;这是它的实现。

- (Class) documentClassForType:(NSString *)documentTypeName {
    return [MyDocument class];
}

- (NSString *) typeForContentsOfURL:(NSURL *)inAbsoluteURL error:(NSError **)outError {
    return @"Any file";
}

除非我将文件放在 Dock 磁贴上,否则不会随时调用这些方法。

4

1 回答 1

1

在您的NSDocumentController子类中,覆盖runModalOpenPanel:forTypes:并使用 nil 为types数组调用 super 。这将启用NSOpenPanel.

于 2012-03-01T16:53:29.873 回答