2012-05-22 1 views
1

Xcode 4.3 начнет производить mainmenu.xibКогда мы создаем стандартное приложение в MacOS, что является первым ответчиком?

Я смотрю на этот mainmenu.xib

Он имеет объект с именем главного меню

я пойти и посмотреть на какие пункты меню слишком

Пункт меню - Показать все, например, ссылку на unhideAllApplications:

Я пытаюсь найти, где unhideAllApplications определено, но не может найти. Окно выхода говорит, что оно связано с первым ответчиком.

Он связан с первым респондентом

проверить класс первого респондента, я не могу найти что-нибудь либо

Владелец файла mainmenu.xib, например, объект класса NSApplication ,

enter image description here

Что класс First ответчику? Там ничего не говорилось в представлении класса

enter image description here

Любопытно есть 3 объекта в mainmenu.xib и приложений и Владелец оба типа NSApplication. Go Figure

enter image description here

ответ

2

Первый ответчик является в настоящее время сосредоточены элемент пользовательского интерфейса. Он изменяется всякий раз, когда фокус движется.

Следующий ответчик обычно является родителем этого элемента, после него родителем этого родителя и т. Д., Заканчивающимся представлением содержимого окна, окном, приложением и, возможно, делегатом приложения.

Каждое событие передается по цепочке, причем каждый ответчик либо обрабатывает его, либо переходит к следующему ответчику.

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

Cocoa Event-handling Guide

+0

Если unhideallaplications определяются в NSApplication, почему точки выхода IBAction к первому ответчику, а не владельцам файлов? Также у нас есть 3 элемента в XIB. Fileowners, first responder и Application, где все объекты NSApplication (предположительно одинаковые). –

+0

@JimThio Они не всегда одинаковы. В других перьях владелец файла не будет приложением. И первый ответчик постоянно меняется. – hamstergene

+0

Хорошо, прежде чем добавить еще +1 голос, почему IBAction outlet для show allApplications привязаны к первому ответчику вместо владельца файла? Обычно розетка подключается к первому ответчику? –

Смежные вопросы