Ранее мы создали выход вручную, объявив свойство в заголовочном файле класса и проведя соединительную линию от кружка выхода в инспекторе связей в nib-редакторе к кнопке.

Среда Xcode предоставляет много других способов для создания выходов — слишком много, чтобы перечислять их все здесь. Сделаем обзор наиболее интересных способов.

Начнем с удаления выхода из проекта Empty Window (если вы этого еще не сделали). Вместо использования инспектора связей для задания выхода в nib-файле мы будем использовать индикаторы HUD (heads-up display), присоединенные к целевому объекту.

1. В файле ViewController. h создайте (или закомментируйте) объявление свойства;

©property IBOutlet UIButton* button;

2. Находясь в раскадровке, нажмите клавишу <Control> и проведите соединительную линию1 от контроллера представления к кнопке. Контроллер представления представляется либо меткой View Controller в структуре документа, либо первой пиктограммой на доке сцены. Кнопка представляется либо меткой в структуре документа, либо ее графическим представлением на канве.

3. Когда вы отпустите кнопку мыши, на экране появится индикатор HUD, в котором кнопка указана как возможный выход (рис. 7.10). Щелкните на кнопке.

 

Выражение “проведите соединительную линию” между точками А и В означает, что пользователь должен навести курсор мыши на точку А, нажать кнопку мыши и перетащить курсор в точку В. Когда речь идет о выражении Control-drag, эта процедура выполняется при нажатой клавише <Control>. — Примеч. ред.

Соединение выхода с помощью проведения соединительной линии от объекта-источника

Рис. 7.10. Соединение выхода с помощью проведения соединительной линии от объекта-источника

 

Снова удалите выход. На этот раз начнем в индикатора HUD, присоединенного к объекту-источника.

  1. Создайте или раскомментируйте объявление свойства в файле ViewController. h.
  2. Нажмите клавишу <Control> и щелкните мышью на представлении контроллера. Контроллер представления представлен либо меткой View Controller в структуре документа, либо первой пиктограммой на доке сцены. На экране появится индикатор HUD, который похож на аналогичный индикатор в инспекторе связей.
  3. Проведите соединительную связь из кружка справа от кнопки к самой кнопке (рис. 7.11). Отпустите кнопку мыши.

 

 Соединение выхода с помощью проведения соединительной линии от объекта-источника

Pиc. 7.11. Соединение выхода с помощью проведения соединительной линии от объекта-источника

 

Снова удалите выход. На этот раз начнем с индикатора HUD, присоединенного к целевому объекту.

  1. Создайте или раскомментируйте объявление свойства в файле ViewController. h.
  2. Нажмите клавишу <Control> и щелкните мышью на кнопке. На экране появится индикатор HUD, который похож на аналогичный индикатор в инспекторе связей.
  3. Найдите листинг, в котором есть строка New Referencing Outlet. Она обозначает выход откуда-то к тому объекту, который мы инспектируем, в данном случае к кнопке. Проведите соединительную линию от кружочка, расположенного справа от кнопки, к контроллеру представления.
  4. На экране появится второй индикатор HUD, в котором перечислены имена из контроллера представления. Щелкните на кнопке.

Снова удалите выход. Теперь мы собираемся создать выход, проведя соединительную линию между кодом и nib-редактором. Для этого необходимо выполнить определенную работу в двух местах: нам необходимо окно помощника. Откройте файл ViewController ,h в главном окне редактирования. Откройте раскадровку в окне помощника, чтобы кнопка была видна.

  1. Создайте или раскомментируйте объявление свойства в файле ViewController. h.
  2. Слева от объявления свойства на поле появится кружок.
  3. Проведите соединительную линию от кружка на краю окна к кнопке в nib-редакторе (рис. 7.12) и отпустите кнопку мыши.

               

 Соединение выхода с помощью проведения соединительной линии от кода к nib-редактору

Рис. 7.12. Соединение выхода с помощью проведения соединительной линии от кода к nib-редактору

 

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

  1. Нажмите клавишу <Control> и проведите соединительную линию от кнопки к nib-редактору через границу окна к пустому разделу @ interface в файле ViewController .h.
  2. Индикатор HUD предлагает выбрать команду Insert Outlet, Action или Outlet Collection (рис. 7.13). Отпустите кнопку мыши.
  3. На экране появится всплывающее меню, в котором можно конфигурировать объявление для вставки в код. Конфигурируйте его так, как показано на рис. 7.14. Щелкните на кнопке Connect.
  4. В ваш код вставляется объявление свойства, и выход соединяется с nib-файлов на один шаг.

Создание выхода с помощью непосредственной связи между кодом и nib-редактором очень удобно, но не стоит обольщаться: прямой связи на самом деле не существует. Для того чтобы выход работал правильно, необходимы две разные и отдельные вещи — переменная экземпляра в классе и выход в nib-файле, with the same name and coming from an instance of that class. Именно идентичность имен и классов позволяет сопоставлять их при загрузке nib-файла, чтобы переменная экземпляра была правильно настроена в конкретный момент времени. Среда Xcode пытается помочь настроить все правильно, но это не волшебное соединение кода с nib-файлом.

 

 Соединение выхода с помощью проведения соединительной линии от nib-редактора к коду

Pиc. 7.13. Соединение выхода с помощью проведения соединительной линии от nib-редактора к коду

 

 Конфигурирование объявления свойства

Puc. 7.14. Конфигурирование объявления свойства

 

Если среда Xcode полагает, что выход настроен правильно, с правильным объявлением выхода в коде и правильной связью в nib-файле, то кружок слева от объявления в коде будет заполнен. Этот кружок служит не только индикатором правильности выхода, но и позволяет открыть всплывающее меню после щелчка, в котором перечисляется то, что может находиться на другом конце связи: щелкните на соответствующем пункте меню и перейдите в nib-редактор, выбрав целевой объект.


Похожие статьи

 

 

 

 
 

У вас нет прав оставлять комментарии. Зарегистрируйтесь на сайте.