NSView Object отвечает как IBOutlet - PullRequest
       20

NSView Object отвечает как IBOutlet

0 голосов
/ 01 сентября 2010

Я застрял на одной проблеме, которую не могу решить.У меня есть CourtView: NSView, в котором я могу рисовать и где он хранит мои mouseDownPoint и mouseUpPoint.И у меня есть WindowManager: NSObject, который имеет CourtView в качестве IBOutlet CourtView * courtView;

Что я хочу сделать, это то, что как только мышь отпущена, так что - (void) mouseUp: (NSEvent *);вызывается метод в WindowManager.

1 Ответ

1 голос
/ 01 сентября 2010

Вам нужно дать CourtView ссылку на экземпляр WindowManager, чтобы он мог обращаться к нему в методе mouseUp. Есть несколько способов сделать это, но, учитывая, что вы уже используете IBOutlet, чтобы связать их другим способом, возможно, самый простой - сделать то же самое в обратном порядке.

Добавить переменную IBOutlet в интерфейс CourtView:

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

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

В Интерфейсном Разработчике вы теперь сможете добавить соединение между этой розеткой в ​​CourtView и существующим WindowManager объектом. Затем в реализации для CourtView ваш обработчик событий отправит соответствующее сообщение на manager:

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

    [manager someWindowManagerMethodWithEvent:event andOtherArgument:whatever];

    // ...
}
...