2012-12-19 59 views
6

我在我的Mac應用程序中有一些NSImageView,用戶可以拖放像.png或.pdf這樣的對象,將它們存儲到用戶共享默認值中,工作正常。NSImageView雙擊動作

我現在想爲用戶雙擊這些NSImageView時設置一個動作,但它似乎有點困難(我對NSTableView沒有任何問題,但'setDoubleAction'不可用於NSImage,並且噸答案(點擊這裏或與谷歌)關於NSImageView的行動指向製作NSButton代替NSImageView,這樣就不會幫助)

這裏是我的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 
    } 
}