пользовательский конструктор интерфейса nsview отправляет действие родителю - PullRequest
4 голосов
/ 20 августа 2009

У меня проблемы с разработкой пользовательского nsview для сообщения о том, что что-то случилось с моим классом основного контроллера.

класс контроллера имеет экземпляр mapView следующим образом:

IBOutlet MapView *mapView;

, который создается с помощью конструктора интерфейса, и в моем классе mapView я получаю щелчки мышью следующим образом:

- (void)mouseDown:(NSEvent *)theEvent { //whatever...

но когда это происходит, переменная или две должны быть изменены в классе контроллера - как я могу это сделать?

1 Ответ

6 голосов
/ 20 августа 2009

Определите протокол для своего пользовательского класса View и внедрите протокол в своем контроллере, в вашем классе представления у вас будет свойство делегата, реализующее код протокола ... это свойство будет выглядеть как

@property(assign) id <MyProtocol> myProtocolDelegate;

тогда Контроллер может установить себя в качестве делегата для представления и, если он правильно реализует протокол, должен получать сообщения при вызове представлением. Информация здесь http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocProtocols.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...