Как «Первый ответчик» можно использовать в xib-файле? - PullRequest
16 голосов
/ 11 января 2011

Я читал о цепочках респондентов, и в основном я читал о том, как события из пользовательского интерфейса передаются по цепочке респондентов, как с ними обращаться и как их передавать.Я также использовал -becomeFirstResponder и -resignFirstResponder, но я использовал их только для базовых задач, таких как показ клавиатуры на iOS и обработка событий встряхивания.

Я хотел бы знать, как я могу использовать «Первый ответчик»"прокси-объект в MainWindow.xib, который генерирует Xcode.Я вижу некоторые полученные действия, а также вижу, что могу создавать действия на вкладке «Инспектор удостоверений».

Итак, мой вопрос: как я могу использовать эти действия, и , когда мне следует использовать этот прокси-объект в IB ?!

Interface Builder Screenshot

Заранее спасибо.

Ответы [ 2 ]

8 голосов
/ 11 января 2011

Назначение действия первому объекту-респонденту аналогично добавлению действия в элемент управления с нулевой целью программно.Когда действие инициируется, приложение проходит через цепочку респондента и отправляет действие первому респонденту, который его принимает.На Mac это часто используется для автоматической отправки команд меню в текущее окно или документ.Вы должны использовать его, если у вас есть несколько объектов, на которые вы хотите отправлять сообщения одной и той же кнопкой.

3 голосов
/ 11 января 2011

Первый респондент будет использоваться в качестве цели действия всякий раз, когда вы хотите, чтобы действие отправлялось первому респонденту, независимо от того, какой конкретный объект находится в момент отправки действия.

В настольном Какао сообщение, предназначенное для Первого ответчика, на самом деле является целевым действием nil - ни одна цель не подразумевается как первый возможный ответчик, Первый ответчик.

Часто текстовые действия направлены наПервый ответчик.Вы хотите, чтобы нажатия клавиш отправлялись в любое текстовое поле, в котором есть фокус, но текстовое поле, которое имеет фокус, изменяется в течение срока службы представления и приложения.Вы можете вручную перенаправить действие каждый раз, когда текстовое поле получает фокус, но благодаря NSResponder вам не нужно беспокоиться - об этом позаботятся все для вас.

...