アプリのアイコンにドロップしてファイルを開きたい。これを行うと、アプリが開かれるため、ファイル拡張子が明確に定義され、アプリに関連付けられます。しかし、application:openFile:
関数は決して呼び出されません。アプリにドロップされたファイルを開くことができません。たどっopenFile:
たけど行かない。
私が見つけたすべての答えは、デリゲートを追加するだけで、openFile:
それがすべてですが、私の場合はそうではありません。
どんな助けでも大歓迎です。よろしくお願いします。
これが私の環境です。
plist には、開くファイルの拡張子があります。ファイルをドロップするとアプリが開きます。
アプリの開始時にデリゲートを初期化し、
mydelegate = [[MyController alloc] init];
そしてデリゲートでは、
インクルードで、
@interface MyController : NSObject <NSApplicationDelegate> {
@private
NSWindow *window;
}
@property (assign) IBOutlet NSWindow *window;
-(id) init;
-(BOOL) application: (NSApplication*)sharedApplication openFile:(NSString*) fileName;
@end
.m ファイルでは、
@implementation MyController
@synthesize window;
- (id)init{
self = [super init];
if (self) {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationWillFinishLaunching:)
name:NSApplicationWillFinishLaunchingNotification object:nil];
}
return self;
}
- (void) applicationWillFinishLaunching:(NSNotification *)aNotification{
NSLog(@"applicationWillFinishLaunching");
}
-(BOOL) application: (NSApplication*)sharedApplication openFile:(NSString*) fileName {
NSLog(@"openFile=%@", fileName);
return YES;
}
@end