Как предоставить собственные отправленные сообщения в Интерфейсном Разработчике

Я не могу найти документы о том, как Interface Builder определяет выходы отправленных сообщений для графических соединений между компонентами, запускающими события, и сообщениями других компонентов.
Я хочу сгенерировать компоненты, инкапсулирующие конечные автоматы состояния. Часть ввода проста, просто определите сообщения IBAction, и вы можете подключить их в Интерфейсном Разработчике. Сложная часть, очевидно, находится на другом конце таких подключений.
Я хочу предоставить для каждого события, запускаемого FSM, отдельный выход, например выход «селектор» NSButton (указан в разделе «Отправленные сообщения» в разделе «Подключения» 'вкладки инспектора).
Как программно указать такие интерфейсы и можно ли указать более одного из них? Или такой подход не подходит; Уведомления были бы лучшим способом? (Я использую графические соединения из Visual Age и Parts, поэтому я бы предпочел их, но в Interface Builder поддержка таких соединений кажется каким-то образом ограниченной).

заранее спасибо

Первая часть моего вопроса была задана в вопросе «Отправить действие какао - IBAction». Я все еще ищу возможность определить более одного «отправленного сообщения».


person Stefan Sachs    schedule 11.12.2009    source источник


Ответы (1)


Когда вы реализуете свой метод с помощью IBActions, объект, сгенерировавший сообщение (отправитель), передается сообщению. Итак, если у меня есть кнопка на моем интерфейсе с надписью «Выход» и действие на некотором объекте контроллера с именем logout:, и я подключил их, метод получает экземпляр кнопки, которая его запустила. Например:

- (void)logout:(id)sender
{
  // sender is the instance of whichever wired button triggered
  // this action. We just NSLog() it for now.
  NSLog(@"-[%@ logout:%@]", self, sender);
}

Другие объекты также могут вызывать это действие и могут выдавать себя за отправителя или могут передавать ноль. Детали этого оставим на ваше усмотрение как дизайнера.

person Jason Coco    schedule 11.12.2009
comment
Это ясно, но вопрос в том, как мне спроектировать отправителя, чтобы он распознавался как отправитель Interface Builder и чтобы IB мог установить соединение. Для получателя очевидно, что достаточно определить метод как IBAction и использовать один параметр. Я пытаюсь выяснить, как мне разработать интерфейс отправителя для поддержки механизма подключения IB. - person Stefan Sachs; 11.12.2009