我的应用程序能够提取.deb文件,但前提是您指定应用程序中按钮的位置。但我希望能够只需单击.deb文件并打开我的应用程序,运行我已经拥有的操作,然后在完成后退出。现在我正在使用NSWorspace告诉我的应用程序它可以打开.deb文件,但我不知道如何让它运行我的操作。使用NSWorkspace甚至是正确的事情吗?我还需要能够以字符串格式打开文件的文件路径,我似乎无法想到这个吗?
答案 0 :(得分:1)
我做了一些测试,这也可能是其他人感兴趣的。解决方案有一个小例子。
在Xcode中创建一个新的Cocoa项目,转到xib并向窗口添加标签。我们将用它来进行概念验证。接下来,给你的app代表一些东西。接口:
#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
有一种方法可以关注:
应用:openFiles散
猜猜它是做什么的?它接收一个文件列表,这些文件来自点击桌面上或查找器中的项目,或者已将文件拖到图标上。它将传递一个带有文件名的数组,以及路径,UNIX样式。
我的测试不需要在应用程序的plist中设置“文档类型”,或者使用finder进行花哨的注册。当然,这可能会增加......
那应该解决你的问题,你可以用.deb文件做任何你想做的事情(我假设debian包?)。
祝你好运!生活
P.S。:只是不要忘记将NSTextField连接到GUI控件;-)否则,它会工作,但没有显示....
答案 1 :(得分:0)
请提供更多信息,说明您正在做什么以及为什么它不起作用,例如: G。崩溃转储,gdb输出等
如果你不告诉我们发生了什么,很难猜出会有什么帮助。