3

双击文件时,我想用我的应用程序打开一个文件。我已经向应用程序注册了文件类型,application: openFile:如果我将文件放到应用程序图标上,该方法可以正常工作。在苹果文档中它说,当用户双击文件时,这种方法也应该起作用。

我看到的是,通过双击打开文件时,应用程序将激活,但 Safari 会打开文件(尝试打开 .webloc 文件)。但是该方法application: openFile:没有被调用:(

这是我在 xcode 中设置的方法: 文件类型 reg

编辑:

我已将 .webloc 设置为作为我的应用程序的标准打开。右键单击“打开方式”>“我的应用程序”也不起作用。

编辑 2: 如果我将文件扩展名重命名为 .mp3 或任何其他文件,我的应用程序将通过双击打开该文件!奇怪的...

4

4 回答 4

2

因为我自己也遇到过类似的问题,所以我会添加对我有用的东西。我发现 .webloc 文件从不调用-application:openFile:,相反,如果您只想双击 .webloc 并让您的应用程序处理它,您必须做几件事以允许您的应用程序成为 URL 的默认角色处理程序。

这篇文章中选择的答案描述了解决我的问题的过程: 如何将 Cocoa 应用程序设置为默认 Web 浏览器?

于 2014-03-20T16:37:27.447 回答
1

双击文件不会在其中打开每个可以处理该文件类型的应用程序(您能想象双击 JPEG 会发生什么吗?)— 双击使用文件类型的默认应用程序。在这种情况下,Safari 是 webloc 文件的默认阅读器。如果您希望它成为被调用的应用程序,则需要将其更改为您的应用程序(您可以从“获取信息”窗口执行此操作)。

于 2012-04-16T18:30:32.203 回答
0

可能有多个应用程序都知道如何打开相同类型的文件。如果您希望您的应用程序处理.webloc文件,请获取该类型文件的信息。然后在信息窗口的“打开方式:”部分的弹出菜单中选择您的应用程序。如果您想将您的应用程序用于所有此类文件,请单击“全部更改...”按钮。

于 2012-04-16T18:30:47.160 回答
-1

在 Xcode 中,使用“Mac OS X :: Cocoa Application”模板创建一个新项目。然后实施

- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError
{ static NSString *content = @"Empty File";
   return [NSData dataWithBytes: [content UTF8String] 
                         length: 1 + strlen ([content UTF8String])]; }

然后,您将有一个工作示例与您的项目进行比较。

于 2012-04-16T18:45:32.340 回答