Каковы цели "Первый ответчик" и "Выход" в редакторе раскадровки?
В XCode IDE в нижней части контроллера представления в редакторе MainStoryboard есть два поля: Первый ответчик и Выход.
Я знаю, что firstResponder является программным в коде, но в редакторе раскадровки я не могу сделать ничего полезного.
Могу ли я использовать первого ответчика в этой области, чтобы каким-то образом установить первого ответчика на просмотр? Я хотел бы, чтобы первое текстовое поле было активным при загрузке, и я попытался щелкнуть правой кнопкой мыши и перетащить безрезультатно. Я знаю, что я могу установить его программным способом в методе viewDidLoad, но есть ли способ сделать это здесь?
И какой зеленый выход для?
![First Responder (orange) and Exit (Green) - what are they for?]()
Ответы
Ответ 1
Я никогда не использовал его и, вероятно, никогда не буду, но вы можете назначить объект первым в очереди для получения событий из пользовательского интерфейса.
Я предполагаю, что вы могли бы создать подкласс UIView и добавить его в UIViewController, но вы действительно хотите, чтобы какой-то другой объект получал и обрабатывал события, отличные от UIViewController, к которым вы добавляете его.
Ответ 2
На этот вопрос нет хорошего ответа, поэтому я отправляю свой ответ:
Из здесь:
Примечание. Вероятно, вы вряд ли будете использовать первого ответчика. Это прокси-объект, который ссылается на любой объект, имеющий статус первого ответчика в любой момент времени. Он также присутствовал в ваших перьях, и вам, вероятно, никогда не приходилось его использовать. Например, вы можете подключить событие Touch Up Inside с помощью кнопки "Первый ответчик": селектор. Если в какой-то момент текстовое поле имеет фокус ввода, вы можете нажать эту кнопку, чтобы текстовое поле, которое теперь является первым ответчиком, вырезало его текст в картон.
Edit:
1) Первый ответчик очень полезен, если вы используете текстовые поля с уведомлением клавиатуры. Я использую его, чтобы клавиатура исчезла, сделайте выход переменной переменной currentFirstResponder вашего класса и в viewWillDisappear:
[self.currentFirstResponder resignFirstResponder];
2) Вы можете прочитать об отключении segues (поле "Выход" ) здесь