2012-12-19 15 views
6

私は、Macアプリケーションで、ユーザーが.pngや.pdfのようなオブジェクトをドロップして、ユーザー共有のデフォルトに保存することができ、うまく動作するMacアプリケーションにNSImageViewをいくつか持っています。NSImageViewダブルクリックのアクション

これらのNSImageViewをダブルクリックするとアクションが設定されますが、少し難しいようです(NSTableViewでは問題はありませんでしたが、 'setDoubleAction'はNSImageでは使用できません。ここでの答え(ここやGoogleと)それは助けにはならないようNSImageViewの行動は、代わりにNSImageViewのNSButtonを作るにポイントに関する)

の私AppDelegate.hの一部です:

@interface AppDelegate : NSObject <NSApplicationDelegate>{ 

    (...) 

    @property (assign) IBOutlet NSImageView *iconeStatus; 

    (...) 

@end 

、ここでは、私のAppDelegate.mの一部:

#import "AppDelegate.h" 

@implementation AppDelegate 

(...) 

@synthesize iconeStatus = _iconeStatus; 

(...) 

- (void)awakeFromNib { 

    (...) 

[_iconeStatus setTarget:self]; 
[_iconeStatus setAction:@selector(doubleClick:)]; 

    (...) 

} 

(...) 

- (void)doubleClick:(id)object { 
     //make sound if that works ... 
     [[NSSound soundNamed:@"Basso"] play]; 

} 

しかし、それは動作しません。

これを行う最も簡単な方法は誰にでも教えてください。

答えて

8

あなたはNSImageViewをサブクラス化し、サブクラスの実装に次のメソッドを追加する必要があります。

- (void)mouseDown:(NSEvent *)theEvent 
{ 
    NSInteger clickCount = [theEvent clickCount]; 

    if (clickCount > 1) { 
     // User at least double clicked in image view 
    } 
} 
関連する問題