0

我的应用程序能够提取 .deb 文件,但前提是您在应用程序中指定按钮的位置。但我希望能够只单击 .deb 文件并打开我的应用程序,运行我已有的操作,然后在完成后退出。现在我正在使用 NSWorspace 告诉我的应用程序它可以打开 .deb 文件,但我不知道如何让它运行我的操作。使用 NSWorkspace 是否正确?我还需要能够获取以字符串格式打开的文件的文件路径,但我似乎无法解决这个问题?

4

2 回答 2

1

我做了一些测试,其他人也可能对此感兴趣。解决方案通过一个小例子来说明。

在 Xcode 中创建一个新的 Cocoa 项目,转到 xib 并在窗口中添加一个标签。我们将使用它来进行概念验证。接下来,为您的应用委托提供一些内容。界面:

#import <Cocoa/Cocoa.h>

@interface fileClickerAppDelegate : NSObject <NSApplicationDelegate> {
NSWindow *window;
NSTextField *fileName;
}

@property (assign) IBOutlet NSWindow *window;
@property (assign) IBOutlet NSTextField *fileName;

@end

实现非常简单:

#import "fileClickerAppDelegate.h"

@implementation fileClickerAppDelegate

@synthesize window;
@synthesize fileName;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {

}

- (void)application:(NSApplication *)theApplication openFiles:(NSArray *)filenames {

    [fileName setStringValue:[NSString stringWithFormat:@"Wow, even multiple files like %d :-)", [filenames count]]];
}

@end

有一种方法可以关注:

应用程序:打开文件。

猜猜它有什么作用?它接收通过单击桌面或查找器中的项目或将文件拖动到图标上传递的文件列表。它将传递一个包含文件名的数组,以及 UNIX 样式的路径。

我的测试不需要在应用程序的 plist 中设置“文档类型”,也不需要使用 finder 进行花哨的注册。当然,这可以增加...

那应该可以解决您的问题,并且您可以对 .deb 文件做任何您想做的事情(我假设是 debian 包?)。

祝你好运!

活的

PS:只是不要忘记将 NSTextField 连接到 GUI 控件 ;-) 否则,它会工作但什么都不会显示....

于 2012-03-03T23:27:18.037 回答
0

请提供更多关于您在做什么以及为什么它不起作用的信息,例如故障转储、gdb 输出等。

如果你不告诉我们我在做什么,很难猜到会有什么帮助。

于 2012-02-16T00:53:26.463 回答