Ctrl-Drag от кнопки к методу не работает. Xcode/Interface Builder

Я создаю приложение iOS, и у меня есть большая часть построенного кода/графического интерфейса (его одно приложение для просмотра). Теперь у меня есть файл .xib и controller.h рядом друг с другом, и я хочу связать нажатие кнопки с определенным действием. Каждый раз, когда я пытаюсь, ничего не происходит. Индикатор UI, который я перетаскиваю, появляется, но он не позволит мне подключиться к методу. Это происходит для всех объектов/методов.

У меня почти идентичный проект, который тоже отлично работает!

Ответ 1

Выберите свой XIB файл, а затем выберите "Владелец файлов", который является желтым кубом. На боковой панели "Утилиты" выберите значок с кругом и стрелкой внутри него (который является "Инспектором подключений" ). Затем вы можете "Управление" + "Перетащить" на свою кнопку.

////Изменить////

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

Для этого:

  • Выберите новое представление (XIB), затем откройте главное представление и в инспекторе идентификации, установите для него класс для своего имени класса "AVYSViewController".

  • Переключитесь на инспектор подключений и Control + Перетащите "вид" на главный вид вашего XIB.

Кроме того, ваш проект искал файл MainStoryBoard.storyboard. Поэтому избавитесь от этого параметра, выбрав свой проект, затем выбрав свою цель, а на вкладке "Сводка" удалите все в поле "Main Storyboard".

Примечание. Я проверил, были ли ваши параметры проекта действительными до того, как я удалил настройку раскадровки, и она не вернула ошибки NO, поэтому остерегайтесь этой проблемы для будущих проектов.

Ответ 2

Я думаю, что читаю ту же книгу, что и вы ( "Big Nerd Ranch" iOS Programming "). Если да, то да, у меня была такая же проблема, как и вы. По общему признанию, я использую свой ноутбук для vnc-перехода в поле mac для работы с xcode, поэтому я подумал, что vnc не захватывает клавиатуру должным образом, но оказывается, что это не было vnc, поскольку я мог щелкнуть правой кнопкой мыши /cntl -click другие вещи.

Правда, я снова не делал много исследований о том, почему он не работает, но тем временем я просто щелкнул правой кнопкой мыши на кнопке, в которой показаны события, из которых вышла кнопка, затем нажмите "Переместить вверх" Внутри "и сбросил его на контроллер/владелец, который затем отобразил действия/методы для привязки события. Если вы посмотрите на стр. 17 (если вы читаете одну и ту же книгу), то это событие, которое было подключено.

Извините, если есть очевидные вопиющие ошибки с тем, что я только что сказал, только начали читать эту книгу сегодня после большого обеда.

Ответ 3

Я думаю, вы должны перефразировать ваш вопрос.. Это очень запутанно. Но если я понимаю, что вы говорите, теперь у вас есть файлы, открытые бок о бок в использовании помощника редактора. Файл Xib слева, файл .h справа. правильно?

Теперь вы пытаетесь связать событие в элементе управления с методом, определенным в файле .h. не так ли?

Итак, если вы на самом деле видите методы в файле .h, к которому вы хотите установить ссылку, но редактор не позволяет вам ссылаться на него, то есть вероятность, что у вас есть xib файл бок о бок с неправильным файлом .h. Вы уверены, что файл .xib и .h, которые бок о бок, называются контроллером? controller.h и controller.xib?