2010-09-01 24 views
0

我卡在一個問題,我無法解決。 我有一個CourtView:NSView,我可以在其中繪製並存儲我的mouseDownPoint和mouseUpPoint。 而我有一個WindowManager:NSObject它有CourtView作爲IBOutlet CourtView * courtView;我想要做的是,只要鼠標被釋放,所以 - (void)mouseUp:(NSEvent *)事件;被調用,WindowManager中的方法被調用。NSView對象作爲一個IBOutlet作出響應

回答

1

您需要爲CourtView提供對WindowManager實例的引用,以便它可以在mouseUp方法中調用它。有幾種方法可以做到這一點,但考慮到您已經使用IBOutlet以另一種方式鏈接它們,最簡單的方法是相反。

一個IBOutlet實例變量加入的CourtView接口:

@class WindowManager; 
@interface CourtView : NSView 
{ 
    IBOutlet WindowManager* manager; 

    // ... rest of your interface ... 
} 

在Interface Builder中,您現在應該能夠在您的CourtView和現有WindowManager對象添加該出口之間的連接。然後,在執行CourtView時,讓您的事件處理程序將相關消息發送至manager

- (void) mouseUp:(NSEvent*) event 
{ 
    // ... 

    [manager someWindowManagerMethodWithEvent:event andOtherArgument:whatever]; 

    // ... 
}